我想让用户详细信息(例如:用户名)出现在我的导航栏中,为此我一直将“req.session.user”变量发送到我的 View 。
我一直在做的是,对于每个 View 渲染,我发送 req.session 变量,如下所示:
app.get('/index', function(req, res, next) {
if(req.session.user) {
res.render("index", {user:req.session.user});
}
});
然后在导航栏所在的主干 View 中打印出用户名。
克服这种重复性成就的最佳实践是什么? 我已经搜索过,但没有结果。
谢谢。
最佳答案
如果您不想像这样向每个页面发送 req.session.user
:{user:req.session.user}
您可以将此数据添加到res.locals对象:
app.use(function(req, res, next) {
res.locals.user = req.session.user
next()
})
因此,在每个页面上您可以像这样输出用户名(例如 ejs ):
<% if (user) { %>
<h1>Hello, <%= user.name %></h1>
<% } %>
关于javascript - 使用 Express 在中间件中传递数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626609/