Express - Middleware

Jong-uk·2023년 4월 6일
0

엘리스 온라인 학습

목록 보기
16/39

미들웨어

  • Express.js 동작의 핵심
  • HTTP 요청과 응답 사이에서 단계별 동작을 수행해주는 함수
  • Express.js의 미들웨어는 HTTP 요청이 들어온 순간부터 시작됨
  • 미들웨어는 HTTP요청과 응답 객체를 처리하거나, 다음 미들웨어를 실행할 수 있음
  • HTTP 응답이 마무리 될 때 까지 미들웨어 동작 사이클이 실행 됨
  • 마무리 되면 다음 미들웨어가 실행되지 않는다!

미들웨어 작성법

  • req - HTTP 요청을 처리하는 객체
  • res - HTTP 응답을 처리하는 객체
  • next - 다음 미들웨어를 실행하는 함수

Router Handler

  • Router Handler도 미들웨어의 한 종류
  • 라우팅 함수(get, post, put, delete)에 적용된 미들웨어
  • 일반적인 미들웨어와는 다르게 path parameter를 사용할 수 있음

작성법!!

  • req, res, next를 인자로 갖는 함수를 작성하면 미들웨어가 됨
  • req, res 객체를 통해 HTTP 요청과 응답을 처리하거나 next 함수를 통해 다음 미들웨어를 호출해야 함
  • next() 함수가 호출되지 않으면 미들웨어 사이클이 멈추기 때문에 주의

사용법

  • middleware 는 적용되는 위치에 따라서 어플리케이션 미들웨어, 라우터 미들웨어, 오류처리 미들웨어로 분류 가능

어플리케이션 미들웨어

  • use 나 http method 함수를 사용하여 미들웨어를 연결할 수 있음
  • 미들웨어를 모든 요청에 공통적으로 적용하기 위한 방법
  • HTTP 요청이 들어온 순간부터 적용된 순서대로 동작 함

라우터 미들웨어

  • router 객체에 미들웨어가 적용되는 것 외에는 어플리케이션 미들웨어와 사용 방법은 동일
  • 특정 경로의 라우팅에만 미들웨어를 적용하기 위한 방법
  • app 객체에 라우터가 적용된 이후로 순서대로 동작함

미들웨어 서브 스택

  • use 나 http method 함수에 여러 개의 미들웨어를 동시에 적용할 수 있음
  • 주로 한 개의 경로에 특정해서 미들웨어를 적용하기 위해 사용
  • 전달된 인자의 순서 순으로 동작

오류처리 미들웨어

  • 오류처리 미들웨어는 일반적으로 가장 마지막에 위치하는 미들웨어
  • 다른 미들웨어들과는 달리 err, req, res, next 네 가지 인자를 가지며, 앞선 미들웨어에서 next 함수에 인자가 전달되면 실행됨

함수형 미들웨어

  • 하나의 미들웨어를 작성하고, 작동 모드를 선택하면서 사용하고 싶을 경우
  • 미들웨어를 함수형으로 작성하여 사용할 수 있음

출처 : 엘리스 아카데미

profile
안녕하세요! 만나서 반갑습니다.

0개의 댓글