Express和ejs <%=呈现JSON

在我的index.ejs中我有这样的代码:

var current_user = <%= user %> 

在我的节点,我有

 app.get("/", function(req, res){ res.locals.user = req.user res.render("index") }) 

但是,在我获得的页面上

 var current_user = [object Object] 

如果我写

 var current_user = <%= JSON.stringify(user) %> 

我获得:

 var current_user = {&quot;__v&quot;:0,&quot;_id&quot;:&quot;50bc01938f164ee80b000001&quot;,&quot;agents&quot;:... 

有没有办法通过一个JSON,将JS可读

哦,那很容易,不要用<%= ,而是用<%- 。 例如:

  <%- JSON.stringify(user) %> 

第一个将以HTML呈现,第二个呈现variables(因为它们是eval)

注意!

如果用户可以通过API调用创build,<% – 会给您带来严重的XSS漏洞。 可能的解决scheme可以在这里find

在ExpressJS中将variables传递给JavaScript