미들웨어는 웹프레임워크(Express.js)에서 클라이언트의 요청(request)과 응답(response)사이에 실행 되는 함수이다. 응답을 수정하거나 에러처리, 인증 인가 처리도 가능하다.
기본구조
>function exapmle(req, res, next) {
console.log('미들웨어');
next();
}
함수에 요청, 응답, 다음미들웨어함수 총 3가지 매개변수를 받는 구조이다.
로직이 끝나고 next()로 다음 미들웨어 함수를 호출한다.
const express = require('express');
const app = express();
app.use((req, res, next) => {
console.log('첫 번째 미들웨어');
next();
});
app.use((req, res, next) => {
console.log('두 번째 미들웨어');
next();
});
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
//출력
첫 번째 미들웨어
두 번째 미들웨어
미들웨어는 순차적으로 실행되기 때문에 작성 위치가 중요하다.
예를들면
// 쿠키 파싱 미들웨어
app.use(cookieParser());
쿠키를 파싱해준는 미들웨어인데 이게 하단에 작성되어있으면 다른 미들웨어에서 req.cookies 같은 요청을해도 값이 없게된다.