这基本上是这里问题的延续:Nodejs Passport display username。
app.get('/hello', function(req, res) {
res.render('index.jade', { name: req.user.username });
});
因此,用户通过PassportJS登录,然后转到index.jade
,其中正文中包含#{name}
,该值将替换为req.user.username
的值。
问题:是否可以在req.user.username
的JavaScript中使用index.jade
的值?我尝试将其值赋给变量,但它不起作用。
我一直在使用以#{name}
作为值隐藏输入的技巧:
input(type='hidden', id='variableName', value='#{name}')
然后JavaScript可以使用以下方法访问此值:
$("#variableName").val()
这很有效。但它是否有任何潜在的缺点,如安全问题?这样做的正确方法是什么?
答案 0 :(得分:2)
您有几个选择。其中一个是你做的,把价值放在你的html里面。你也可以通过这样做来解决它:
script
window.name = #{name};
这将创建一个设置变量的内联脚本。你有另一个选择是使用ajax。这意味着您可能需要额外的路由来回复该请求。