1
我是Node NodeJ新手。我使用快遞和護照。我也跟蹤數據庫中的當前用戶。重定向Node Js無法正常工作
目標是讓他們無法訪問其他數據。如果他們嘗試訪問其他數據,他們將被重定向到正確的數據頁面,並會收到來自connect-flash的消息提示。
下面是代碼:
app.get('/data/:dataPlace', isLoggedIn, function(req, res) {
if (req.user.dataPlace == req.params.dataPlace) {
res.render('data.ejs', {
user : req.user,
message: req.flash('dataDisplayMessage')
});
}
else {
req.flash('dataDisplayMessage', 'OOOPS!');
res.redirect('/data/' + req.user.dataPlace);
}
});
這工作的大部分時間(即使使用鉻預取數據):
GET /data/asdasd 302 1.049 ms - 86
GET /data/user 200 1.129 ms - 1639
但是,在罕見的場合我會得到什麼樣這:
GET /data/asdasd 302 1.108 ms - 86
GET /data/asdasd 302 1.989 ms - 86
GET /data/user 200 2.769 ms - 1646
第一個GET請求被引起通過鉻預取數據。除了像前一次直接重定向到'用戶'之外,它會掛起,直到我按下回車鍵,然後導致另一個'asdasd'GET請求,然後重定向到'user'。
這會導致消息顯示兩次! 那麼,我是這樣做的正確方法嗎?爲什麼它顯示消息兩次?任何建議將不勝感激!
是否做到這一點在其他瀏覽器?也許這是一個鉻合金問題?我知道我的Chrome預取存在問題 - 並非真正的問題,但是當您開發時,意外的請求會在嘗試查找問題時造成混淆。 – Kryten
@Kryten我一直在用Safari瀏覽器嘗試它,看起來似乎無法重現相同的結果......如果沒有解決方法,這將會非常難過 – Zack