什么是在ejs模板中检查未定义属性的最佳方法?
(我正在使用TJ Holowaychuk的node.js软件包)
示例:
我希望这将呈现为“foo undefined”。但实际上会抛出一个“foo undefined”错误。
我知道这不应该是个问题,因为这是在测试中预期的行为。有没有简单的方法可以避免这种情况?
我找到的唯一解决方案是使用
(我正在使用TJ Holowaychuk的node.js软件包)
示例:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
我希望这将呈现为“foo undefined”。但实际上会抛出一个“foo undefined”错误。
我知道这不应该是个问题,因为这是在测试中预期的行为。有没有简单的方法可以避免这种情况?
我找到的唯一解决方案是使用
hasOwnProperty
方法。var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
这不会引发任何错误。
有没有更好的方法来保持模板的清洁?或者为什么会引发这个错误?