使用 ejs 嵌入用户对象
Embedding user object using ejs
我目前正在使用 passport 模块在 Node.js 中实现 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>
但是存在一些编码问题。这是我在浏览器中查看源代码时的输出:
<!--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>
我正在遵循一个使用 swig 的示例,其中他们处理编码的方式如下:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = {{ user | json | safe }};
</script>
我对 swig 不太熟悉,所以我认为它是某种流水线。我想知道如何使用 ejs 来做到这一点?
在 Swig 中,{{ user | json | safe }}
表示:
user
返回此 JavaScript 对象的字符串表示形式,并返回此字符串,强制它不自动转义。
在翡翠中,
!{JSON.stringify(user)}
逃脱
#{JSON.stringify(user)}
逃脱了
在 Ejs 中,
<%- JSON.stringify(user) %>
逃脱
<%= JSON.stringify(user) %>
逃脱了
已解决!EJS有一个html转义功能,就像
<%- user %>
而不是
<%= user %>
相关文章:
- 无法在Meteor/MongoDB中返回当前用户对象
- 如何通过向用户推送模式引用来更新用户对象's数组字段
- 如何解析用户对象以返回屏幕名称并继续下一步操作
- Facebook使用Parse客户端站点登录,使用Express js的用户对象
- Parse.com / Javascript - 将用户对象ID字符串保存为用户指针
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- 如何从 Passport.js 更改本地策略身份验证的用户对象
- 使用 ejs 嵌入用户对象
- 如何保存引用用户对象的分析对象
- 身份验证后将用户对象返回到父页面,无需刷新页面
- 更新parse.com中的用户对象
- 从React中的Firebase获取用户对象属性
- 使用localstorage创建和存储用户对象
- 尝试使用angular js将选中的选项赋给用户对象
- 解析用户对象上设置的ACL
- 多长时间是从FB打开图形用户对象有效的图片url
- 返回Parse的列表.基于objecd的用户对象
- 更新用户对象[Meteor]中的列表中的元素
- 在parse中查询用户对象时没有返回数据
- 流星:通过DDP登录并在单独的流星应用程序中检索当前用户对象