Error 처리
가장 흔한 에러 : 존재하지 않은 파일을 찾았을 때
(404 - Not Found )
Google : Express Not found
결과 ) 없는 페이지 모습
맨 마지막에 넣는 모습
: 이제까지는 맨 위에 코드를 넣었지만, 이것은 맨 아래에 줌
==> 미들웨어는 순차적으로 실행하기 때문에, 더이상 실행하지 못하고 맨 밑에까지 와서도 못 찾으면 실행하는 것이므로, 404 statuscode를 내뱉는다.
4. Problem
목차에 'Apple' 파일이 없지만, path에 Apple을 넣으니, 화면에 'Apple'이라고 뜬다.
보통 페이지가 없는 경우에 Error를 발생시킨다.
4- 1. 상세 페이지 코드 수정
1) Err가 있는 경우 next를 호출한다.
app.get('/page/:pageId', (request, response, next) => {
var filteredId = path.parse(request.params.pageId).base;
fs.readFile(`data/${filteredId}`, 'utf8', function (err, description) {
2)
fs.readFile(data/${filteredId}
, 'utf8', function (err, description)
; data/${filteredId}에서 file을 읽는데, 그 파일이 없다면 callback함수의
첫번째 param으로 Error 객체를 전달하도록 되어잇따.
if (err) {
next(err)
}
3) err 가 발생한다면
next(err) 이 실행한는데, 이는..
이 라우트( app.get('page/:pageId'~~)안의 next 콜백이 실행한다.
param이 없는 기본 next()는 통해서 다음 middleWare를 던져주고, 인자로 'route'를 전달하면 다음 미들웨어를 실행시킴
그 외의 데이터가 들어오면, err라는 약속 체결되어있다.
next(err); 는 err데이터를 전달해 주면, err를 던지는 것이다
4- 2. Err Message 출력)
4- 3. 화면의 Err Message 변경
expressjs.com
1) 코드추가 : Status 404 코드 밑에 붙임.
app.use(function (err, req, res, next) {
console.error(err.stack)
res.status(500).send('Something broke!')
})
( * 위치 참조_)
2) 설명
- Msut_ status Code : 404 밑에 놔야함.