2

这个问题可能看起来重复,但查看相关问题并没有给出令人满意的答案。除了通常建议的以外,是否有更好的方法在 EJS 中输出(写入)变量

<% if (user) { %><%= user.name %><% } %>

我正在寻找类似的东西

<% if (user) {write(user.name)} %>

我发现的最接近的东西是

<%= user.name ? user.name : '' %>

在 2015 年的这篇好文章中:https ://blog.joeandrieu.com/2013/10/16/how-to-conditionally-display-variables-with-ejs/ ,但这种方法至少在节点 10 中失败了,因为我得到无法读取 undefined 的属性“名称”。我做错了吗?还是有其他方法?

4

1 回答 1

1

检查用户对象是否未定义。用这个:

<%= typeof user != 'undefined' ? user.name : '' %>

或者,您可以将user对象附加在 上locals,因此您可以这样使用它:

<%= user.name ? user.name : '' %>
于 2019-03-27T22:59:41.357 回答