app.lisen(port, () => { console.log(`🚀 App listening on the port ${port}`); });
위와 같이 모든 GET요청에는 'Hello World!'를 응답하고 모든 POST요청에는 에러를 발생하도록 하겠습니다. POST의 에러는 nextFunction으로 에러메세지를 넘기도록 하겠습니다. 라우터에서 next()를 사용하여 에러를 넘기게 되면 모든 에러는 에러미들웨어로 처리를 위임 할 수 있습니다.
모든 GET요청에는 'Hello World!'를 잘 리턴합니다.
모든 POST요청에는 400 Bad Request상태코드와 커스텀 에러메세지를 응답합니다.
하지만 다른 PATCH와 같은 요청에는 위와 같이 응답값이 이쁘지 않습니다. 단지 404 Not Found상태코드와 에러를 발생합니다. API가 존재하지 않는 요청에 대해서도 미들웨어를 통해 에러핸들링을 할 수 있습니다. 에러핸들링 바로 위에 404 Not Found에 관한 코드를 추가하겠습니다.
에러핸들링 부분 바로 위에 notFound 미들웨어를 추가하면 모든 요청에 대한 커스텀 메세지를 보여 줄 수 있습니다. 이를 응용하여 404 page도 보여줄 수 있습니다. 에러핸들링은 순서가 매우 중요하므로 순서를 잘 생각하여 정의하셔야 합니다. 이 블로그 포스팅과 관련된 코드는 여기를 참고 바랍니다.