172
한 권으로 끝내는 Node & Express
파이프라인의 마지막 미들웨어는 이전 라우트와 일치하지 않는 요청을 모두 받는 폴백 핸들러
로 만드는 게 일반적입니다. 이 미들웨어는 보통 상태 코드
404
를 반환합니다.
미들웨어에서
next
()
를 호출하지 않으면 요청은 해당 미들웨어에서 종료됩니다.
10.1
미들웨어 원칙
익스프레스가 어떻게 동작하는지 이해하려면 미들웨어와 라우트 핸들러에 대해 유연하게 생각
할 수 있어야 합니다. 다음을 꼭 염두에 두세요.
●
app.get
,
app.post
등의 라우트 핸들러는
GET
,
POST
같은 특정
HTTP
동사만 처리하는 미들웨어라고
생각할 수 있습니다. 반대로 미들웨어는
HTTP
동사 전체를 처리하는 라우트 핸들러라고 생각할 수 있
습니다 (기본적으로
HTTP
동사 전체를 처리하는
app.all
과 동등합니다.
PURGE
같은 독특한 동사에서
는 조금 차이가 있지만, 일반적인 동사에서는 같습니다).
●
라우트 핸들러는 첫 번째 매개변수로 경로를 받습니다. 모든 라우트에 일치하는 경로를 원한다면
*
를 사
용합니다. 미들웨어 역시 첫 번째 매개변수로 경로를 받을 수 있지만, 옵션입니다 (생략하면
*
를 쓴 것과
마찬가지로 모든 라우트에 일치합니다 ).
●
라우트 핸들러와 미들웨어는
2
개,
3
개 또는
4
개의 매개변수가 있는 콜백 함수입니다. 매개변수가 없거
나 하나만 있는 경우도 있지만 이런 형태는 현실적으로 거의 쓰이지 않습니다. 매개변수가
2
개 또는
3
개
라면 첫 번째와 두 번째 매개변수는 ...