2016-06-08 3 views
2

나는 내가 ('localhost로 리디렉션 당신이 너무 많이'과 페이지의 URL을 말하는 오류가 'http://localhost/'로 이동하면 내 경로가 노드 표현 리디렉션이 너무 많이

아래와 같이 설정있어 브라우저의 URL 표시 줄)에 표시하는 것은 http://localhost/!/dashboard입니다 - 그래서 리디렉션되는 것처럼 보일 않습니다,하지만 난이

// 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'); 
    } 
}; 
+0

무엇'처럼 보이는 routes.login'입니까? (특히'/'또는 대시 보드로의 리다이렉트) –

+0

@DominicTobias - routes.login에 대한 GET은 리다이렉트를하지 않고 단순히 페이지를 렌더링하지만, routes.login에 대한 POST는 passportjs로 인증 성공 후 리다이렉트를가집니다. '반환 res.redirect ('/!/대시 보드')' –

+0

'routes.dashboard' 코드를 포함하십시오 – peteb

답변

3

(그래서 이것은 가난한 대답은, 비록 내가 더 의견을 적절하게 업데이트 할 것입니다 말씀 드릴 수 없습니다) a /.

대신 app.all 사용

app.all('/', function(req,res){ 
    res.redirect('/!/dashboard'); 
}); 
app.use('/login', routes.login); 
app.use('/!/dashboard', isLoggedIn, routes.dashboard); 
+0

감사합니다 - 그게 해결되었습니다. –

0

클래식 오류가 아파치의 구성에 서서 것입니다 무한 루프에 갇히지 왜 볼 수 없습니다/Nginx. 귀하의 코드에서는 포트 80을 사용하고있는 것으로 보입니다. 귀하가 사용하고 있지 않으므로 Apache 또는 Nginx를 통해 요청을 프록시 처리 할 것입니다.

함께을 시작하는 모든 URL과 일치하기 때문에, 당신은 app.use('/', ...)를 사용해서는 안

관련 문제