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

Node.js 为什么ejs模板中的分号会引发错误,node.js,express,ejs,Node.js,Express,Ejs,在下面的代码中,如果删除分号,模板引擎不会抛出错误,否则将抛出错误 <ul> <% for (i = 0; i < array.length; ++i) { %> <%= JSON.stringify(array[i]); %> <% } %> </ul> 尽管分号在语法上是正确的,但为什么模板引擎会抛出错误?正如@torazaburo所说,之间的内容是一个由ejs解析的表达式。但是,请这样想: 您的目

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

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

尽管分号在语法上是正确的,但为什么模板引擎会抛出错误?

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

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