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