节点 – expression太多的redirect
我有我的路线设置如下
当我导航到' http:// localhost / '时,我得到一个错误,说'本地主机redirect你太多次了',并且该页面的URL(显示在浏览器的URL栏中)是http:// localhost /!/仪表板 – 所以它看起来像它正在redirect,但我不明白为什么它陷入了一个无限循环
// Public Routes app.use('/', function(req,res){ res.redirect('/!/dashboard'); }); app.use('/login', routes.login); app.use('/!/dashboard', isLoggedIn, routes.dashboard); // Check If Logged In function isLoggedIn(req,res,next){ if (req.isAuthenticated()){ return next(); } else { res.redirect('/login'); } };
你不应该使用app.use('/', ...)
,因为它会匹配任何以/
开头的 URL。
相反,使用app.all
:
app.all('/', function(req,res){ res.redirect('/!/dashboard'); }); app.use('/login', routes.login); app.use('/!/dashboard', isLoggedIn, routes.dashboard);
经典的错误会在你的Apache / Nginxconfiguration中出现。 在你的代码中,你似乎正在使用端口80,我相信你没有使用,所以你将通过Apache或Nginx代理你的请求。
(不能评论,即使这是一个不好的答案,我会根据进一步的评论进行更新)