bootstrappedUser – Jade或EJS到HTML

我已经在Mean stack上做了一些指导,并且我到了目前被困住的地步。 按照这个指南,我创build了一个简单的身份validation,我可以使用Passport JSlogin。 无论什么时候,当页面刷新时,authentication重新开始(客户端不再识别)。

既然这是假设发生在指南,我们即将解决这个问题,指导下面说。 1.创build一个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文件中创build了variables并将req.user赋值给它, Uncaught ReferenceError: bootstrappedUser is not defined

我想这个文件包含在我的主要布局(index.html)。 问题是我没有使用Jade作为模板引擎,而是纯HTML,而我不知道如何将这些代码转换成我的index.html中的简单HTML。

它接缝这个声明只在用户点击loginbutton时初始化。 有没有人有任何想法或解决scheme如何编写纯HTML的上述代码。

我浏览了StackOverflow并发现了几乎相似的问题,但不够相似。 在此先感谢,亚历山大

bootstrappedUser是一个由服务器端代码传递给Jade编译器的variables,它在编译时将其注入到HTML中。 如果你打算自己写HTML,你不能从服务器端代码注入variables,显然是因为HTML只是一个静态的标记。 您可能必须通过ajax或其他东西从服务器端获取客户端的variables。

通过Angular控制器让我们说?

您可以首先在服务器上定义一个服务器,为您提供所需的variables

 app.get('/bootstrappedUser', function(req, res){ if(req.user) res.json(req.user); else res.status(401).end(); }); 

然后在客户端angular度,你可以执行一个http请求并获取该variables

 $http.get('/bootstrappedUser') .success(function(data, status, headers, config) { $scope.bootstrappedUser = data; });