클라이언트와 서버 중간에서 역할을 한다. 미들웨어를 사용하는 이유는 어떤 공격을 막거나 중간에 필요한 공통적인 기능을 묶어서 한 번에 처리하기 위해 만든다.
미들웨어 함수는 req
,res
그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수에 대한 액세스 권한을 갖는 함수다.
그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시, 현재의 미들웨어 함수가 요청-응답 주기를 종료하지 않는 경우 next()
를 호출해서 그 다음 미들웨어 함수에 제어를 전달해야함
ex) 로그인을 했는지 안했는지 검증하는 미들웨어, 특정 클라이언트에서만 올 수 있게 IP를 차단하는 미들웨어 등
<aside> 🗣 미들웨어 === 컨베이어 벨트
ex) 인형 = 시작:재료, 가공,조합,검수, 끝:상품
http = 시작:요청, 엔드포인트 확인, 라우팅,CORS처리,바디 얻어오기,인증 확보 확인,에러 처리, 끝:응답
</aside>
ex) 사람마다 정보가 다르기 때문에 로그인하는 사용자 확인목적으로 미들웨어를 사용
Incoming Request ⇒ Middle ware ⇒ Middle ware ⇒ Middle ware ⇒ Response