에러처리를 할 때 서버가 다운이 되면 안 된다.
app.get("/", (rea, res) => {
throw new Error("it is an error");
});
// 미들웨어를 거치지 않고 에러를 보내면 서버가 멈춘다.
에러 처리기
app.use((error, req, res, next) => {
res.json({ message: error.message });
});
// 에러처리기를 이용하면 서버가 멈추지 않고 에러를 알려준다.
하지만 비동기 요청으로 인한 에러를 이렇게 처리하면 에러 처리기에서 에러 메시지를 받지 못하기 때문에 서버가 멈춘다.
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를 이용해서 비동기 함수로 에러처리가 가능하다.