JavaScript代码中的EJS标记

时间:2017-10-26 22:04:01

标签: javascript jquery node.js ejs

我使用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;
}

当用户登录时,此代码可以正常工作。但是,当没有用户登录时,评估为空。不是空字符串。不是空的。没有定义。只是空的。因此,我收到以下错误

未捕获的SyntaxError:如果

,则出现意外的令牌

当我通过chrome dev工具进行检查时,这就是我所看到的

enter image description here

(是的,我意识到缺少一个分号,我添加了它...当我这样做时,我得到了未被捕获的语法错误:意外的令牌;)

1 个答案:

答案 0 :(得分:1)

undefined将通过JSON.stringify不变,EJS会将其视为无效。如果您将其默认为null,则会将其转换为字符串"null",EJS将将其呈现为null

var currentUser = <%- JSON.stringify(currentUser || null) %>;