相关疑难解决方法(0)

你如何在node.js的ejs中检查未定义的属性?

在ejs模板中检查未定义属性的最佳方法是什么?

(我正在使用TJ Holowaychuk 的node.js包)

例:

var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
Run Code Online (Sandbox Code Playgroud)

我希望这会渲染"foo undefined".它确实会抛出一个未定义的错误.

我知道这不应该是一个问题,因为这是测试中的预期行为.有一种简单的方法可以避免这种情况吗?

我找到的唯一解决方案是使用该hasOwnProperty方法.

var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
Run Code Online (Sandbox Code Playgroud)

这不会引发任何错误.

有没有更好的方法来保持模板清洁?或者为什么会抛出这个错误?

javascript undefined ejs node.js

30
推荐指数
3
解决办法
3万
查看次数

标签 统计

ejs ×1

javascript ×1

node.js ×1

undefined ×1