[express.js] express 에러 처리

김민재·2024년 4월 6일

express.js

목록 보기
33/39

에러처리를 할 때 서버가 다운이 되면 안 된다.

app.get("/", (rea, res) => {
  throw new Error("it is an error");
});
// 미들웨어를 거치지 않고 에러를 보내면 서버가 멈춘다.

에러 처리기

app.use((error, req, res, next) => {
res.json({ message: error.message });
});
// 에러처리기를 이용하면 서버가 멈추지 않고 에러를 알려준다.
  • 에러처리기는 4개의 인자가 들어간다. 첫 번째 미들웨어에서 발생한 에러 메시지를 이곳에서 처리해준다.

하지만 비동기 요청으로 인한 에러를 이렇게 처리하면 에러 처리기에서 에러 메시지를 받지 못하기 때문에 서버가 멈춘다.

 app.get("/", (rea, res) => {
  setImmediate(() => {
     throw new Error("it is an error");
   });
  });
  • 이렇게 비동기 함수를 이용할 시에 서버가 멈춘다.

    비동기 요청을 위한 에러 처리기

    app.get("/", (rea, res, next) => {
    setImmediate(() => {
      next(new Error("it is an error"));
    });
    });
  • next를 이용해서 비동기 함수로 에러처리가 가능하다.

profile
개발 경험치 쌓는 곳

0개의 댓글