NestJS Interceptors

paduck·2024년 6월 13일
0

NestJS

목록 보기
10/24

NestInterceptor 인터페이스를 구현해야 함

AOP 에 영향을 받아

  • 메서드 실행 전/후에 추가 로직 바인딩
  • 함수에서 반환된 결과 변환
  • 함수에서 발생한 예외 변환
  • 기본 함수 동작 확장
  • 특정 조건에 따라 함수를 완전히 재정의 (예: 캐싱 목적)

두 가지 인수를 받는데:
1. ArgumentHost 를 상속하는 ExecutionContext
2. handle() 함수를 구현하는 CallHandler 인터페이스

  • 원하는 시점에 라우트 핸들러 함수 호출
  • 호출하지 않으면 라우트 핸들러 전혀 실행되지 않음
    즉, 라우트 핸들러 실행 전/후 에 원하는 로직 구현 가능
  • Pointcut 이라고도 하며
  • RxJS 연산자의 Observable를 통해 응답 조작 가능

전체에 걸쳐 발생하는 요구 사항에 대한 재사용 가능한 솔루션 만드는 용도

생각외로 RxJS 연산자가 많이 사용되므로 고려

profile
학습 velog

0개의 댓글