Request Lifecycle

Nest 애플리케이션은 요청 수명 주기 라고 하는 순서대로 요청을 처리하고 응답을 생성한다.

일반적으로 요청은 미들웨어를 통해 가드, 인터셉터, 파이프, 반환 경로의 인터셉터 순으로 흐른다.


미들웨어

  • 전역적으로 바인딩된 미들웨어를 먼저 실행
  • 이후 모듈 바인딩된 미들웨어를 실행
  • 서로 다른 모듈에 걸쳐 바인딩된 미들웨어는 루트 모듈에 바인딩된 미들웨어 실행, imports 배열에 모듈이 추가된 순서대로 미들웨어를 실행

가드

  • 글로벌 가드, 컨트롤러 가드, 라우트 가드 순으로 실행

인터셉터

  • 요청은 전역, 컨트롤러, 라우트 순으로 확인
  • 응답은 라우트, 컨트롤러, 전역 순으로 확인

파이프

  • 전역 파이프, 나중에 바인딩 되는 파이프 순으로 실행
  • 매개변수 별 파이프가 있는 경우 마지막 매개변수에서 첫번째 매개 변수로 실행

필터

  • 라우터, 컨트롤러, 전역 순으로 동작

일반적인 요청 수명 주기 순서

요청 

1. 미들웨어

2. 가드

3. 인터셉터(컨트롤러 실행 이전

4.파이프

5.컨트롤러

5-1.서비스

6. 인터셉터(컨트롤러 실행 이후)

7.예외필터

응답

'Typescript' 카테고리의 다른 글

[NestJs] - Provider 살펴보기  (1) 2023.10.26

+ Recent posts