[Express] 에러 처리하기
기초/Node.js2021. 7. 17. 18:14
가장 흔한 에러는 존재하지 않는 페이지를 찾았을 때 발생하는 에러.
http상에서는 404 Not Found라는 에러를 보내주기로 약속되어 있음.
참고 링크 : https://expressjs.com/ko/starter/faq.html
app.use(function(req, res, next) {
res.status(404).send('Sorry cant find that!');
});
끝에다가 위 코드를 추가하면 된다.
근데 왜 끝에다 해야할까?
→ 미들웨어는 순차적으로 실행되기 때문에 더 이상 실행할 수 있는 상황이 없을 때
끝까지 도착하게 되고, 그 때 에러 처리를 하는 것이다.
링크 양식에는 맞지만 작성한 글 리스트에 없는 글 제목을 불러오려고 했을 때도 에러로 처리해 보자.
45, 46번째 줄의 if문을 보면 에러가 발생했을 때 next(err)를 실행하도록 만든다.
next(err)는 그 이후 코드와는 관련 없이 맨 아래에 추가한
app.use(function (err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});
를 실행하게 하고, 유효하지 않은 글 제목을 불러오려 했을 때 해당 문구를 띄우게 한다.
err값이 있는 경우 Express는 인자가 4개인 함수가 등록되어 있는 미들웨어를 호출하도록 약속되어 있다.
404뿐만이 아니라 500번 같은 추가 Express 에러 핸들링에 대한 내용은
'기초 > Node.js' 카테고리의 다른 글
[Express] 라우터 - 파일로 분리 (0) | 2021.07.17 |
---|---|
[Express] 미들웨어의 실행순서 (0) | 2021.07.16 |
[Express] 미들웨어 만들기 (0) | 2021.07.16 |
댓글()