【发布时间】:2014-10-26 16:11:37
【问题描述】:
如何从静态html页面访问Express.js req或session,例如如何在index.html页面顶部显示登录用户名
【问题讨论】:
-
问题不清楚,请解释清楚
-
hmmm...我不知道为什么不清楚,这很简单,我只需要知道如何在静态 html 页面中注入会话变量
如何从静态html页面访问Express.js req或session,例如如何在index.html页面顶部显示登录用户名
【问题讨论】:
你需要模板引擎。
例如:
如果你使用swig:
index.html:
<span>{{name}}</span>
index.js:
res.render("index.html",{
name:req.session.userName
});
快递支持很多template engines,你可以choose one随意。
【讨论】:
您必须使用模板引擎。 JADE 默认带有 express,对于 html,您可以使用 ejs。 它的工作方式类似于 JSP,如
例如:-如果你通过了这样的事情:
router.get('/userDash',function(req,res){
.....
res.render('userDash',{user:req.session.username});
});
现在您可以在 html 中使用 传递的变量 user,例如:
<html>
<head>
</head>
<body>
<h1>Welcome <%= user %> </h1>
</body>
</html>
or
创建一个返回当前用户登录的api,如果没有用户登录则返回null:
router.get('/user',function(req,res){
if(req.session && req.session.username){
res.send(req.session.username);
}
else{
res.send('noUser');
}
}
在需要时在 html 中对其进行 ajax 调用,您将获得有关当前登录用户的信息。(这不是一个好的方法,它在 html 端的会话处理中对我有用)
【讨论】: