2017-12-12 4 views
1

Express 응용 프로그램에서 404 및 405 상태 코드를 모두 처리 할 수있는 방법을 찾고 있지만이를 개별적으로 처리하려고합니다.NodeJS Express 처리 중 404 (찾을 수 없음) 및 405 (처리 수 없음) 분리됨

예컨대 : 나는 다음과 같은 라우터가 :

// Add routes for every path we define here. 
server.use('/', require('./indexRoutes')) 
server.use('/account', require('./accountRoutes')) 

// Handling route errors. 
server.all('*', (request, response) => 
    response.status(404).send('Invalid route (not found).') 
) 

그러나, 유효하지 않은 경로 또는 유효하지 않은 HTTP 동사 중 하나는 server.all 방법으로 치료를 받고 있습니다. 각각의 시나리오에 대해 서로 다른 지위, 내용 및 모든 것을 보내기 위해 그들을 개별적으로 대우 할 수있는 방법이 있습니까?

고마워요!

답변

3

내 마음에 가장 먼저 오는 것은 모든 유용한 경로를 선언 한 후 405 오류로 응답하려는 각 경로를 선언하는 것입니다. 당신의 accountRoutes 예를 들어 :

server.get('/account', ....); 
server.post('/account', ...); 
server.all('/account', (req, res, next) => { 
    res.status(405).send('Method not allowed'); 
}); 

당신이 당신의 방법으로 처리됩니다/계정 경로에 GET 또는 게시물을받는 경우

. 다른 방법은 405 코드로 응답됩니다.

구현되지 않은 패스는 기본적으로 404 코드를 보내며, 구현하지 않아도된다고 생각합니다.

관련 문제