【发布时间】:2014-12-16 03:01:38
【问题描述】:
我一直在做一些关于平均堆栈的指南,但我遇到了一个我目前陷入困境的地步。 按照本指南,我创建了一个简单的身份验证,可以在其中使用 Passport JS 登录。无论如何,每次页面刷新时,身份验证都会重新启动(客户端不再识别它)。
由于这应该在指南中发生并且我们即将修复它,因此指南说以下内容。 1. 创建一个 Jade 文件并插入:
if !!bootstrappedUser
script.
window.bootstrappedUserObject = !{JSON.stringify(bootstrappedUser)}
我已经在我的 html 文件中尝试过,但它不起作用:
<script type='text/javascript'>
if (bootstrappedUser != "undefined" ){
window.bootstrappedUserObject = JSON.stringify(bootstrappedUser);
}
</script>
得到错误:Uncaught ReferenceError: bootstrappedUser is not defined
即使我已经在我的后端 js 文件中创建了变量并将 req.user 分配给它。
我想这个文件包含在我的主布局中(index.html)。问题是我没有使用 Jade 作为模板引擎,而是使用纯 HTML,而且我不知道如何将那里的代码转换为我的 index.html 中的简单 HTML。
这里的这条语句似乎只有在用户点击登录按钮时才会初始化。有没有人有任何想法或解决方案如何用纯 HTML 编写上述代码。
我浏览了 StackOverflow,发现了几乎相似的问题,但还不够相似。 提前致谢, 亚历山大
【问题讨论】:
-
bootstrappedUser是由服务器端代码传递给 Jade 编译器的变量,Jade 编译器在编译时将其注入 HTML。如果您打算自己编写 HTML,则不能从服务器端代码中注入变量,显然因为 HTML 只是一个静态标记。您可能必须自己通过 ajax 或其他方式在客户端从服务器获取该变量。 -
比方说通过 Angular 控制器?
标签: javascript html node.js express pug