Javascript 使用ejs嵌入用户对象
我目前正在Node.js中使用passport模块实现web应用程序的身份验证。呈现索引页时,我将用户对象返回给用户Javascript 使用ejs嵌入用户对象,javascript,node.js,passport.js,ejs,swig-template,Javascript,Node.js,Passport.js,Ejs,Swig Template,我目前正在Node.js中使用passport模块实现web应用程序的身份验证。呈现索引页时,我将用户对象返回给用户 app.route('/').get(function(req, res) { res.render('index', { isAuthenticated: req.isAuthenticated(), user: req.user //User Object provided by passport }); }); 我正在尝试使
app.route('/').get(function(req, res) {
res.render('index', {
isAuthenticated: req.isAuthenticated(),
user: req.user //User Object provided by passport
});
});
我正在尝试使用ejs将用户对象嵌入到DOM中:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = <%= user%>;
</script>
var user=;
但也存在一些编码问题。这是在浏览器中查看源代码时的输出:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = { email: 'test@gmail.com',
roles: [ 'user' ],
created: Thu Feb 04 2016 19:13:16 GMT+1100 (AEDT),
__v: 0,
_id: 56b3081cb406f8156cd3798a };
</script>
var user={email:';test@gmail.com',
角色:[';用户';],
创建日期:2016年2月4日星期四19:13:16 GMT+1100(AEDT),
__v:0,
_id:56b3081cb406f8156cd3798a};
我下面是一个使用swig的示例,在该示例中,它们像这样处理编码:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = {{ user | json | safe }};
</script>
var user={{user | json | safe}};
我对swig不太熟悉,所以我认为它是某种管道。我想知道如何使用ejs来实现这一点?已解决!EJS有一个html转义函数,它与
<%- user %>
而不是
<%= user %>
在Swig中,
{{user | json | safe}}
表示:
将此JavaScript对象的字符串表示形式返回给我user
,并将此字符串返回给我,使其不能自动转义
在翡翠中,
!{JSON.stringify(user)}
unescaped
{JSON.stringify(用户)}
转义
在Ejs中,
未设场景
转义您可能正在寻找
但是,为了得到与您发布的swig相同的结果。是的,甚至更好!修复了解析日期对象的问题