[node.js] Express - 에러 핸들링

GONI·2021년 9월 27일
0
post-thumbnail

(보기만해도 지옥같은 썸네일을 누르신 것을 환영합니다...)


node.js환경에서는 어떤 방식으로 에러를 다루는지 한번
📝기록해 보도록 하자📝


1. 모델 작성

에러 핸들링 모델인 ExpressError.js파일을 작성한다.

MVC패턴으로 작성하고 싶다면 미리 model폴더를 만들어 주도록 하자.

class ExpressError extends Error {
  constructor(message, errorCode) {
    super(message)
    this.code = errorCode
  }
}
module.exports = ExpressError

2. 에러 핸들링

해당 파일을 불러온 뒤,

const ExpressError = require("../models/ExpressError")

에러에 해당하는 message와 errorCode를 던지거나(throw)

throw new ExpressError("던질까 말까", 404)

다음으로 넘기거나(next)

return next(new ExpressError("무슨 생각을 하고 계신가요?", 404))

하여 아주 간편하고 짧게 에러를 잡을 수 있다.

throw로 에러 핸들링을 할 경우 별도의 return이 필요하지 않지만,
next로 에러 핸들링을 할 경우 return을 해 주어야 다음 미들웨어로 넘어가게 된다. 🤫


3. 에러 코드 정리

개인적으로 asycn await를 통한 비동기 작업을 할 때 try catch를 많이 사용하는데, catch부분마다 무슨 에러에 해당되는지 날려주는 코드가 조금은 길지만 후에 작업을 할 때 더 도움이 되는 것 같다. 이 때 자주 사용하는 웹 페이지 에러 코드를 간단하게 정리해보자.


401 - 인증 필요

예를 들어 로그인을 하는 경우, 로그인 정보가 일치하지 않거나 어떠한 인증이 필요할 때 사용한다.

404 - 찾을 수 없음

해당 페이지가 존재하지 않을 때 사용한다. 인터넷을 사용하면서 한번쯤 마주쳤을 에러 코드

500 - 내부 서버 오류

서버에서 어떤 요청을 했을 때 실패했을 경우 사용한다.

profile
오로지 나의 기억력을 위한 일지

0개의 댓글