我正在從PHP轉移到NodeJS,我試圖理解中間件重定向失控的原因。NodeJS重複重定向
// Check to see if the request includes a session Username
app.use(function (req, res, next) {
sessionmanager = req.session;
if(sessionmanager.Username) {
console.log('Session Details detected');
next();
} else {
console.log('No session details detected, pushing user to login page');
res.redirect('/login');
}
});
// User Landing Page
app.get('/', function (req, res) {
console.log('Request for landing page');
res.send('Welcome Page!');
});
// User Login Page
app.get('/login', function (req, res) {
console.log('Request for User login page');
res.sendFile(path.join(__dirname, './public', 'login.html'));
});
當我訪問本地主機:3000重定向我到localhost:3000 /登錄,但頁面加載失敗,因爲它看起來像它被重定向的次數太多。 當我查看控制檯日誌時,我可以計數;超過20行的消息'沒有檢測到會話細節,推送用戶登錄頁面'。
從我可以猜到,重定向循環回到app.use函數,未能通過會話manager.Username語句,並陷入循環。 將流量重定向到/ login頁面的最佳方式是什麼?我可以在app.use中放置一個排除子句嗎?