[我正在尝试学习快速编程,我来自PHP背景,我试图实现的目标是将经过身份验证的用户设置为res.locals
变量,以便可以在eJS中轻松使用经过身份验证的用户变量。
MY app.js看起来类似于
initialize passport etc
///////////////////////////////////////////
//middleware to pass authuser to req locals
app.use(function (req, res, next) {
res.locals.authUser = req.user;
next();
});
router.js
router.get('/',function(req,res){
console.log(res.locals.authUser);
res.render('index');
});
index.ejs视图<%= authUser.first_name %>
在ejs中first_name
未解析,但是如果我放置此<%= authUser %>
,它将呈现
{
is_admin: true,
_id: 5d8cb3702e35aa2f5cbaabf8,
first_name: 'ruban',
last_name: 'shah',
username: 'admin',
email: '[email protected]',
password: 'xxxxxx'
}
这意味着authUser
是对象,但不打印authUser.first_name
是ejs
但很奇怪的是,它呈现authUser.username
[我的最佳猜测是,当您在用户登录后将用户添加到sesison时,不是在添加用户对象而是在添加JSON String。