为什么ejs模板中的分号会引发错误

时间:2015-03-05 16:04:36

标签: node.js express ejs

在下面的代码中,如果删除了分号,模板引擎不会抛出错误,否则会抛出错误。

<ul>
  <% for (i = 0; i < array.length; ++i) { %>
      <%= JSON.stringify(array[i]); %>
  <% } %>
</ul>

虽然使用分号语法正确,但为什么模板引擎会抛出错误?

1 个答案:

答案 0 :(得分:2)

正如@torazaburo所说,<=%%>之间的内容是一个由ejs解析的表达式。但是,请这样想:

您的目标是将从JSON.stringify返回的内容呈现给页面吗?因此,在这种情况下,请将ejs表达式视为隐式调用表达式结果的.toString(),然后将该字符串插入到页面中。通过添加分号,您可以终止语句而不将返回的值赋给任何内容。