본문 바로가기
Q&A2018년 6월 30일1분 읽기

Node.js Express 미들웨어 개념이 헷갈립니다

노
노드입문
조회 2156댓글 4
Express에서 미들웨어가 정확히 뭔가요? app.use()로 뭔가 넣는 건 알겠는데, next()를 왜 호출해야 하는지, 미들웨어 순서가 왜 중요한지 이해가 안 됩니다. 간단한 예제로 설명해주시면 감사하겠습니다.

댓글 4

데데이터사이언스현8년 전
미들웨어는 요청(req)과 응답(res) 사이에 끼어드는 함수입니다.

```javascript
app.use((req, res, next) => {
console.log(req.method, req.url); // 로깅
next(); // 다음 미들웨어로 넘김
});
```

next()를 호출하지 않으면 요청이 거기서 멈춥니다. 순서가 중요한 이유는 위에서 아래로 실행되기 때문이에요.

예: body-parser를 라우트보다 먼저 넣어야 req.body를 쓸 수 있습니다.
노노드입문(guest)데이터사이언스현8년 전
아 파이프라인처럼 순서대로 흘러가는 거군요. next() 안 부르면 막히는 거고. 이해됐습니다!
데데이터사이언스현데이터사이언스현8년 전
맞습니다. 에러 처리 미들웨어는 매개변수가 4개(err, req, res, next)라는 점도 알아두세요.
김김영삼8년 전
실무에서 자주 쓰는 미들웨어 순서:
1. helmet (보안 헤더)
2. cors
3. body-parser / express.json()
4. 인증 미들웨어
5. 라우터
6. 에러 핸들러

이 순서 외우면 됩니다.
Ctrl+Enter로 등록