Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ejs嵌入用户对象_Javascript_Node.js_Passport.js_Ejs_Swig Template - Fatal编程技术网

Javascript 使用ejs嵌入用户对象

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 }); }); 我正在尝试使

我目前正在Node.js中使用passport模块实现web应用程序的身份验证。呈现索引页时,我将用户对象返回给用户

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: &#39;test@gmail.com&#39;,
  roles: [ &#39;user&#39; ],
  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相同的结果。是的,甚至更好!修复了解析日期对象的问题