[Express] 오류 처리

0. 참고자료

에러처리 – 생활코딩

Express 오류 처리

Express.js가 동기 및 비동기 코드에서 오류를 처리하는 방식을 이해하고, 애플리케이션에 맞는 사용자 정의 오류 처리 미들웨어를 구현하는 방법을 알아보세요.


1. 오류 처리

다른 미들웨어 함수와 동일한 방법으로 오류 처리 미들웨어 함수를 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수, 즉 (err, req, res, next)를 갖는다는 점이 다르다.

app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});
Code language: JavaScript (javascript)

오류 처리 미들웨어는 다른 app.use() 및 라우트 호출을 정의한 후에 마지막으로 정의해야 한다.

사용자의 요청에 적절한 응답을 수행할 방법을 찾지 못하면 최종적으로 에러를 응답한다.

next() 함수로 어떠한 내용을 전달하는 경우('route'라는 문자열 제외), Express는 현재의 요청에 오류가 있는 것으로 간주한다. (보통 next(err))

...
if (err){
    next(err);
}
...

이 경우 오류 처리와 관련되지 않은 나머지 라우팅 및 미들웨어 함수를 건너뛴다.

이러한 오류를 어떻게든 처리하기 원하는 경우, 다음 섹션에 설명된 것과 같이 오류 처리 라우트를 작성해야 한다.

app.use((err, req, res, next)=>{
    console.error(err.stack);
    res.status(500).send('Somethig is wrong!');
});

//app.listen( ... ) 바로 위에 위치
Code language: JavaScript (javascript)

댓글 남기기