因此,當我登錄到我的網站並在同一網址內導航時(例如: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