我正在使用 session (使用 express 和 Node )制作一个登录模块。 当用户登录后,我将用户保存在 session 中。
req.session.user= ...
如何在 .ejs View 中获取 session 值,例如:
<label>
您好!<%= req.session.user.username %>
</label>
但这行不通。
我可以这样做:
router.get('/home',function(req, res){
var val = req.session.user;
res.render('home',{user:val});
});
.ejs:
<p>
您好!<%= user.username %>
</p>
可是这样太麻烦了。 什么是更好的方法?
(在 php 中,我可以只使用 $_SESSION 来获取 View 文件中的值。)
最佳答案
您可以使用 res.locals
将特定数据公开给所有模板。
在您的情况下,您可以将以下中间件添加到 Express:
app.use(function(req, res, next) {
res.locals.user = req.session.user;
next();
});
这将使 user
变量在您的所有模板中可用。
您确实需要确保在 req.session
设置之后添加中间件(通常在 express-session
之后)已添加到中间件链中)。
关于node.js - 如何在ejs中获取session值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37183766/