我想知道是否有办法在会话中提供用户数据,默认情况下是路由的响应。例如写下这样的东西:
app.get("/someRandomPath",PutUserData,function(req,res,next)
{
res.render("myView",{title:"my page title"})
}
function PutUserData(req,res,next)
{
if(auth)
{
res.send({user:session.user}
next()
}
else next()
}
甚至更好地在应用程序级别执行某些操作,例如app.use(...)
?
我想这样做的原因是我想避免在每一条路线中检查用户是否处于Authed状态,并使用不同的数据渲染视图。
我很感激你的帮助。
答案 0 :(得分:1)
从Express文档中查看res.locals
。这可能对你有用。
http://expressjs.com/en/api.html#res.locals
另外,请参阅this answer以获取有关res.locals如何工作的帮助。
app.use(function(req, res, next){
res.locals.user = session.user;
next();
});
前端(玉石模板,但你可以使用你想要的任何模板引擎)
extends layout
block content
p user was set to #{user}