当前位置: 首页 > 面试题库 >

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

琴正初
2023-03-14
问题内容

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

(我正在使用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"} }));

这不会引发任何错误。

有没有更好的方法来保持模板清洁?还是为什么会引发此错误?


问题答案:

测试属性的另一种方法是通过locals对象间接引用它。使用您的示例

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


 类似资料:
  • 问题内容: 测试JavaScript中是否未定义变量的最合适方法是什么?我已经看到了几种可能的方法: 要么 要么 问题答案: 如果您想知道变量是否已声明而无论其值如何,那么使用运算符是最安全的方法。考虑以下示例: 但这在某些情况下可能不是预期的结果,因为已声明但未初始化变量或属性。使用运算符进行更强大的检查。 如果您想知道变量是否尚未声明或具有值,请使用运算符,该运算符可确保返回字符串: 直接比较

  • 我有这个代码: 谁能告诉我我错在哪里?

  • 问题内容: 我想转义Bloglist [i] .Text字段中的html。如何使用EJS做到这一点? 问题答案: 您正在使用以下方法正确地转义该值: 如果要允许呈现HTML,则需要“未转义”的值。为此,请使用以下命令: 我所做的就是用破折号(-)代替等号(=)。 参考:https : //github.com/visionmedia/ejs/tree/0.8.3#features

  • 问题内容: 我想检查变量是否已定义。例如,以下引发未定义的错误 如何捕获此错误? 问题答案: 在JavaScript中,是一个对象。不存在的事物还有另一个价值,。DOM 在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中是所使用的值。 第二,不,没有直接对等的内容。如果您确实要专门检查,请执行以下操作: 如果要检查变量是否存在,那只能用/ 来完成,因为它将未声明的

  • 本文向大家介绍如何在JavaScript中检查未定义的变量?,包括了如何在JavaScript中检查未定义的变量?的使用技巧和注意事项,需要的朋友参考一下 要检查变量是否为“未定义”,您需要使用以下命令进行检查。如果结果为“ false”,则表示未定义变量。在这里,变量结果为“ True”- 示例

  • 我知道下面是未定义的,因为我试图在同一表达式中读写变量的值,即 但如果是这样,为什么下面的代码片段不是未定义的? 因为在这里,我也试图修改的值并同时写入它。 还请解释为什么标准没有纠正或删除这种未定义的行为,尽管他们知道这是未定义的?