node.js - 始终将变量传递给 Express res.render

标签 node.js express passport.js

是否可以始终将某些变量默认传递给 res.render

更具体地说,我正在使用 passport 中间件来填充当前用户的 req.user。我需要在我网站的每个页面上访问它。

每次都提供它很乏味——如果我忘记了,用户似乎没有登录。

最佳答案

一个简单的解决方案是创建您自己的中间件:

function userView(req, res, next) {
    res.locals.user = req.user;
    next();
}

//...

app.use(passport.initialize());
app.use(passport.session());
//...
app.use(userView);

对于每个请求,这会填充一个局部变量 user,然后链中稍后呈现的 View 可以访问该变量。 之后激活此中间件,passport one 或 req.user 将未定义。

关于node.js - 始终将变量传递给 Express res.render,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928031/

相关文章:

javascript - Babili 缩小但不转译

angular - CORS 环境中未发送 Session-Cookie

javascript - Express js "res.append"错误 : Can't set headers after they are sent

node.js - socket.request.user 在 Passport.js、Socket.io 和 Express 中未定义

javascript - Socket.io sessionStore,store.get 方法不存在

javascript - 在 Koa.js 中仅重定向未经身份验证的用户以查找丢失的资源?

javascript - Node.js 网络库 : getting complete data from 'data' event

node.js - 在 Elastic 搜索中同时使用 NOT 和 OR

json - 如何使用 mongoose 和异步 waterfall 模型在 MongoDb 中存储数据

node.js - 更新 MongoDB 文档(在 NodeJS 中)