因此,当我登录到我的网站并在同一网址内导航时(例如:localhost/private/xxxx),res.locals.user会返回一个对象。res.locals变量为空或超出范围?
当我超出范围(例如:localhost/xxxx)时,res.locals.user
为空。
/app.js
...
app.use(passport.session());
app.use(require('./controllers'));
...
/控制器/ index.js
router.use('/private', require('./member.js'));
router.use('/admin', require('./admin.js'));
/* Some basic routes. */
router.get('/', function(req, res, next) {
res.render('index', { ... });
});
洛在res.locals.user
后仍然空在这里
/控制器/ member.js
router.use(function isMember(req, res, next) {
if(req.isAuthenticated()) {
res.locals.user = req.user;
return next();
}
req.flash('error', 'WHY YOU LITTLE!');
res.redirect('/login');
});
router.get('/', function(req, res, next) {
res.redirect('/private/index');
});
router.get('/something', function(req, res, next) {
res.redirect('/private/somehting');
});
router.get('/darkside', function(req, res, next) {
res.redirect('/private/darkside');
});
res.locals.user
正确返回用户,我是否转到/私人,/私营/东西或/私营/暗边
是否为ca使用router.use('/private', require('./member.js'));
时我使用中间件路由吗?我该如何解决?
这样做的问题是,我需要将用户添加到我的每个路线(大约30+)。 res.locals.user避免了这一点,因为它是正确的接受我的模板文件。 – Goowik