클라이언트에게 받은 요청에 대해 응답하기 위해 그 중간 단계를 처리하는 함수들을 의미함.
이전에 정리하였던 request handler도 middleware의 일종이다.
기본 사용법
const gomao = (req,res,next) => { console.log("gomao"); next() }
이와 같이 next를 인자로 갖는 함수를 선언하고,
next()
를 통해 다음 middleware를 호출할 수 있다.이때
next()
가 호출되지 않으면 다음 middleware가 호출되지 않는다.
- 기본 제공 미들웨어
- 라우터 레벨 미들웨어
- 어플리케이션 레벨 미들웨어
- 써드 파티 미들웨어
- 오류 처리 미들웨어
기본적으로 미들웨어는 req,res,next 3개의 인자를 받으나
오류 처리 미들웨어는 4개의 인자를 받는다.
Error handling Middleware
app.use( (err, req, res, next) => { console.error(err.stack); res.status(500).send("something wrong"); })
이전에 적용된 미들웨어 중
next()
를 호출한 경우, 중간 미들웨어를 건너뛰고 오류처리 미들웨어가 바로 실행됨에 주의해야 한다.