变量在脚本标记中不可用

时间:2016-07-19 01:04:34

标签: javascript node.js express pug

我正在使用passportjs在我的快递应用上进行用户身份验证。但我遇到了一个奇怪的问题:

在我的索引路径上,我使用用户参数

呈现index.jade模板
router.get('/', function(req, res, next) {
  res.render('index', { user: req.user });
});

现在在我的玉模板中,我有以下

block content
  if user
    h1 logged in #{user}
    script var shared_resources.user = user
  if !user
    h1 Not logged in

由于某种原因,该用户的条件传递正常。而且当我在登录的#{user}中打印出用户对象时,它会打印出细节。但是在脚本标记内,我得到了一个未被捕获的引用,用户未定义。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

您还需要在脚本标记中使用模板字符串。

script var shared_resources.user = "#{user}"

如果您想嵌入对象,可以尝试使用。

script var shared_resources.user = !{JSON.stringify(user).replace(/<\//g, '<\\/')}