ejsテンプレートで未定義のプロパティをチェックするための最良の方法は何ですか?
(私はTJ Holowaychukによるnode.jsパッケージを使用しています)
例:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
これで「fooundefined」がレンダリングされると思います。代わりに、 fooの未定義エラーをスローします。
これはテストで予想される動作であるため、これが問題になることはないことを私は知っています。これを回避する簡単な方法はありますか?
私が見つけた唯一の解決策は、このhasOwnProperty
方法を使用することです。
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
これはエラーをスローしません。
テンプレートをきれいに保つためのより良い方法はありますか?または、なぜこのエラーがスローされるのですか?