
client에서 request를 보내게되면 서버에 있는 미들웨어들 하나하나를 순차적으로 동작.
최종 미들웨어에서 response를 client에게 전달.
Express는 일련의 미들웨어 함수 호출.
미들웨어에는 5가지 종류가 존재.
app.use('/abc', 미들웨어) == abc로 시작하는 요청에서 미들웨어 실행
app.post('/abc', 미들웨어) == abc로 시작하는 POST 요청에서 미들웨어 실행
app.get('/user/:id', (req, res, next) => {
res.send('hello');
})
첫 파라미터로 해당 경로에서만 미들웨어가 동작하도록 지정 가능.
생략하면 모든 경로에서 미들웨어가 동작.
app.use('/user/:id', (req, res, next) => {
console.log();
next(); // 다음 미들웨어 실행
})
미들웨어의 인자는 3개(요청, 응답, 다음 미들에어 호출 콜백).
미들웨어는 한 개 이상 등록 가능.
app.use('/user/:id', (req, res, next) => {
console.log();
next(); // 다음 미들웨어 실행
}, (req, res, next) => {
console.log();
next();
})
Router-level
Error-handling
4개의 인수 사용(err, req, res, next). 하나라도 생략되면 일반 미들웨어로 인식됨.
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
})
Built-in
내장 미들웨어
Third-party