2012-01-12 5 views
0

내 응용 프로그램에서 404 가지 사례를 가장 잘 처리하는 방법에 대해 약간 당황 스러웠습니다. 여기에 아주 기본적인 예제의 요지가 있습니다. 내가 서버를 화재와 서버 "/"의 인덱스를 치면 expressjs에서 404를 적절하게 처리합니다.

//****************************** 
// BUILD THE HTTP SERVER 
//****************************** 
var express = require('express'); 
var app = express.createServer(); 

app.get('/login', function(req, res){ 
    console.log("hit the login"); 
    res.send('you hit the login'); 
}); 

app.get('*', function(req, res){ 
    console.log("got a 404"); 
    res.send('what???', 404); 
}); 

app.listen(8081); 
console.log('Server started on port: 8081'); 

나는 제대로 로그가 2입니다 그러나, 404 메시지가 콘솔에 로그온 항목 "404있어"... 이상한.

그래서 "/ login"페이지를 누르면 적절한 페이지와 콘솔에 해당 메시지가 표시되지만 콘솔에 404 메시지도 표시됩니까?

이것은 예상되는 동작입니까? 4.11에 최신 2.5.4 익스프레스를 사용하고 있지만 동일한 결과를 가진 노드의 다른 버전에서도이 익스프레스를 사용해 보았습니다.

저는 404 경로가 매 요청마다 호출된다는 사실을 정말로 좋아하지 않습니다. 나는 틀린 일을해야합니다.

답변

3

이것은 아마도 브라우저가 귀하의 페이지에도 favicon을 얻으려고한다는 사실 때문일 것입니다.

또한이 같은 일을 발견 logger을 사용할 수 있습니다
express.createServer(
    express.favicon()  
); 

, 정말 유용 미들웨어의 :

그냥 사용 express.favicon() 서버를 생성.

+0

정확합니다. 누락 된 부분입니다. –

관련 문제