일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- passport
- 함수
- Web2
- express
- local
- Web
- dr 학교측
- /bin/www
- tPerRow hn측
- 생활코딩
- lowdb
- 객체정의
- round
- 실행
- 설치
- nodejs
- sanitize
- math
- node.js
- 객체
- 자동
- 데이터
- template
- 모듈
- 객체란
- JavaScript
- Generator
- nodemon
- Passport.js
- app.js
- Today
- Total
괜찮아 잘하고있어 힘내
13. 에러처리 본문
존재하지 않는 페이지를 찾았을때 발생하는 에러
404
맨 마지막 부분에 추가해 준다.
미들웨어를 추가해준 것이다. 미들웨어는 순차적으로 실행되기 때문에 더이상 실행하지 못하고 146번줄까지 왔을땐 못찾은것이기 때문에 그때 404 status를 보내주고 찾을 수 없다는 메세지를 보낸다.
---------------------------------------------------------------------------------------------------------------------------------
그 외에 에러처리.
쿼리스트링의 id값을 없는 값으로 넣게되면
상세보기에서 HTML1이라고 뜨긴 한다. 하지만 저 HTML1은 url의 쿼리스트링 값을 그대로 가져온 것이기 때문에 뜨는것이고, 그 밑에 내용은 undefined 라고 없는 값이라고 뜨게 된다.
보통 페이지가 없는 경우에는 에러를 발생시켜야 한다.
36) next 를 추가해준다.
38) 파일을 읽어오는데 만약 에러가 발생한다면 에러내용이 err에 담겨진다.
39) 만약 에러가 있다면
40) next함수가 실행되고 에러 코드가 넘어간다.
41) 그렇지 않다면 즉, 정상 작동 한다면
42 ~ 58) 원래 정상작동하는 소스코드를 넣는다.
실행하면
이런식으로 에러메세지가 뜬다.
이런 에러 내용을 바꾸고 싶다면
expressjs 사이트를 들어가
guide - error handling 을 들어간다.
그중 writing error handlers 를 본다.
이 내용을 조금 전 404 처리를 했던 내용의 밑에 넣어준다.
404보다 위에 넣으면 안된다.
155) 첫번째 자리는 아까 위에서 에러가 발생했을때 실행되는 next( ) 를 통해서 받는 에러 데이터가 담겨진다.
그리고 request, response, next 가 있어서 총 4개의 인자를 가지고 있다.
express에서는 에러를 핸들링 하기 위한 미들웨어로 하자는 약속이 돼있다.
어떤 미들웨어가 등록돼어있는지 싹 다 무시하고
인자가 4개인 함수로써 등록된 미들웨어만 호출된다.
쉽게 말해 에러가 발생하면 next()에 걸려 자동적으로 에러에 관련된 155번줄 내용을 찾아서 에러처리 한다고 생각하면 된다.
156번줄로 인해서
콘솔에도 에러 메시지가 뜨게 된다.
'웹 개발 > Node.js - Express' 카테고리의 다른 글
14.2. 라우터 - 파일로 분리 (0) | 2021.02.03 |
---|---|
14.1. 라우터 - 주소체계 변경 (0) | 2021.02.03 |
12. 정적인 파일의 서비스 (0) | 2021.02.02 |
11. 미들웨어의 실행 순서 (0) | 2021.02.02 |
10. 미들웨어 만들기 (0) | 2021.02.02 |