[javascript] Express.js에서의 에러 처리 방법

Express.js는 Node.js를 기반으로 한 웹 애플리케이션 프레임워크로, 개발자들이 간편하게 웹 애플리케이션을 구축할 수 있게 도와줍니다. 그러나 애플리케이션에서 에러가 발생할 수 있으며, 이를 처리하는 방법은 중요합니다. 이 글에서는 Express.js에서의 에러 처리 방법에 대해 살펴보도록 하겠습니다.

기본적인 에러 처리

Express.js는 기본적으로 에러 핸들링을 제공합니다. 다음은 기본적인 에러 처리 방법입니다.

app.use(function(err, req, res, next) {
  // 에러 처리 로직
  res.status(500).send('서버 에러');
});

위의 코드는 모든 미들웨어 및 라우터에서 발생하는 에러를 처리하는 핸들러입니다. next(err)를 호출하여 에러를 전달하면, 이 핸들러가 실행됩니다. res.status(500)은 500 상태 코드를 응답으로 전송하며, 마지막으로 에러 메시지를 클라이언트에게 전송합니다.

에러 미들웨어 사용

Express.js에서는 에러 미들웨어를 사용하여 각각의 에러 유형에 대한 처리를 구분할 수 있습니다. 에러 미들웨어는 다음과 같이 정의됩니다.

app.use(function(err, req, res, next) {
  // 에러 종류에 따른 처리 로직
  if (err instanceof SyntaxError) {
    res.status(400).json({ error: '잘못된 요청 형식' });
  } else {
    res.status(500).send('서버 에러');
  }
});

위의 코드에서는 SyntaxError라는 특정 에러 유형에 대한 처리를 추가하였습니다. 만약 요청의 문법이 잘못되었다면 400 상태 코드와 함께 에러 메시지를 JSON 형식으로 응답으로 전송합니다. 그 외의 모든 에러에 대해서는 500 상태 코드와 ‘서버 에러’ 메시지를 응답으로 전송합니다.

에러 로그 남기기

에러 발생 시 적절한 로그를 남기는 것은 디버깅 및 애플리케이션의 안정성을 위해 중요합니다. Express.js에서는 console.log를 사용하여 에러를 로깅할 수 있습니다.

app.use(function(err, req, res, next) {
  // 에러 로깅
  console.log(err);

  res.status(500).send('서버 에러');
});

위의 코드에서는 console.log(err)를 사용하여 에러를 출력합니다. 이는 개발 중에 에러를 신속하게 파악하고 해결하는데 도움이 됩니다.

Conclusion

Express.js에서의 에러 처리는 애플리케이션의 안정성과 신뢰성에 관계된 중요한 부분입니다. 이 글에서는 기본적인 에러 처리 방법과 에러 미들웨어를 사용한 처리, 그리고 에러 로깅에 대해 알아보았습니다. 애플리케이션 개발 시 적절한 에러 처리를 위해 이러한 방법들을 적용해보시기 바랍니다.

관련 참고 자료: