我使用 Node.js 和 ejs 作为模板语言。
我觉得这真的很愚蠢,我应该能够解决它,但我被困住了。
我在使用以下功能时遇到问题:
// Returns true if campground has been posted by currently logged on user
// If no user logged on, returns false
function checkIfCampgroundBelongsToUser(campgroundAuthorID) {
var currentUser = <%-JSON.stringify(currentUser) %>
if(currentUser && currentUser._id === campgroundAuthorID) {
return true;
}
return false;
}
当用户登录时,此代码可以正常工作。但是,当没有用户登录时,该代码的计算结果为空。不是空字符串。不为空。不是未定义的。只是空的。因此,我收到以下错误
未捕获的语法错误:意外的标记,如果
当我通过 Chrome 开发工具检查时,这就是我看到的
(是的,我意识到缺少分号,我添加了它......当我这样做时,我得到了未捕获的语法错误:意外的标记;)
最佳答案
undefined
将原封不动地通过 JSON.stringify
,并且 EJS 会将其呈现为空。如果您将其默认为 null
,它将被转换为字符串 "null"
,EJS 将其呈现为 null
。
var currentUser = <%- JSON.stringify(currentUser || null) %>;
关于javascript - JavaScript 代码中的 EJS 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46964536/