node.js express - middleware [미들웨어]

이기곤·2022년 1월 27일
0
post-custom-banner

Middleware

미들웨어 함수는 req(요청) 객체, res(응답) 객체, 그리고 어플리케이션 요청-응답 사이클 도중 그 다음의 미들웨어 함수에 대한 엑세스 권한을 갖는 함수이다.

미들웨어란 간단히 클라이언트에게 요청이 오고, 그 요청을 응답하려는 중간(미들)에 목적에 맞게 처리를 하는, 거쳐가는 함수들 이라고 생각하면 된다.

요청-응답 도중 시간을 콘솔 창에 남기고 싶으면 미들웨어 함수를 중간에 넣어서 표시를 한 뒤에 계속해서 다음
미들웨어들을 처리할 수 있도록 하는것이다.
다음 미들웨어 함수에 대한 엑세스는 next함수를 이용해, 다음 미들웨어로 현재 요청을 넘길 수 있다.
하지만 다음 미들웨어로 넘겨주지 않으면 무한로딩에 빠질 수 있다.

● 아래 그림은 미들웨어 함수 호출의 요소가 표시되어 있다

Middleware의 특징

  • 모든 코드를 실행
  • 다음 미들웨어 호출(순차적으로 실행)
  • req,res 객체 변경 가능
  • 요청-응답 주기를 종료

Middleware의 유형

1) Application
-어플리케이션 전체 영역에서 처리 가능. 앱에 대한 request가 발생할 때마다 실행
2) Router
- 라우터 단위로 request가 발생하면 실행
- 모듈(파일) 단위 라우팅 시 사용하면 유용
3) Error Handling
- 기본적으로 4개의 인자가 필요(인자의 숫자로 오류 처리 미들웨어 판별)
4) Basic(default)
- express.static(root,[options])
어플리케이션 정적 자원 설정(CSS,HTML,JS) 등
2개 이상의 정적 디렉토리 설정 가능
5) Third-Party
- Application Level 및 Router Level에서 서드파티 미들웨어 설정이 가능함
- http://expressjs.com/ko/resources/middleware.html 참고
- express의 경우 초기버젼과 다르게 대부분 서드파티 미들웨어 사용을 권고하고 있음.
자주 사용하는 조합을 찾아놓고 사용하는 것이 개발 속도, 안정성에서 유리함.
애플리케이션 레벨 및 라우터 레벨 미들웨어는 선택적인 마운트 경로를 통해 로드할 수 있음.
일련의 미들웨어 함수를 함께 로드할 수 있으며, 이를 통해 하나의 마운트 위치에 미들웨어 시스템의 하위 스택을 작성할 수 있음.

자료 참고 사이트

profile
개발자로 성장중......
post-custom-banner

0개의 댓글