@nestjs/common 모듈에서 가져온 useGuards 및 useInterceptors 함수는
Nest.js 애플리케이션에서 미들웨어, 가드, 인터셉터를 사용하는 데 도움을 주는 함수입니다.
이들을 사용하여 요청 처리를 커스터마이즈하고 요청과 응답 처리에 중간 과정을 추가할 수 있습니다.
- useGuards:
- useGuards 함수는 라우터 핸들러(컨트롤러 메서드)에 가드(Guard)를 적용할 때 사용됩니다. 가드는 요청을 처리하기 전에 요청을 필터링하거나 수정하는 역할을 합니다. 예를 들어, 인증 관련 가드는 요청이 인증된 사용자에게만 허용되도록 필터링할 수 있습니다.
- useGuards 함수는 하나 이상의 가드를 적용할 수 있으며 배열로 여러 가드를 적용할 수 있습니다. 가드는 클래스로 정의되며 @Injectable() 데코레이터로 주석이 달린 클래스로 작성됩니다.
[코드 예시]
import { useGuards } from '@nestjs/common';
import { AuthGuard } from './auth.guard';
@UseGuards(AuthGuard)
@Get('protected')
getProtectedData() {
// 이 엔드포인트는 AuthGuard 가드에 의해 보호됩니다.
}
2. useInterceptors:
- useInterceptors 함수는 라우터 핸들러에 인터셉터(Interceptor)를 적용할 때 사용됩니다. 인터셉터는 요청과 응답 사이의 중간 단계에서 작동하며, 요청 또는 응답을 변환하거나 보강할 수 있습니다. 인터셉터를 사용하여 로깅, 데이터 변환, 에러 처리 등을 수행할 수 있습니다.
- useInterceptors 함수는 하나 이상의 인터셉터를 적용할 수 있으며 배열로 여러 인터셉터를 적용할 수 있습니다. 인터셉터는 클래스로 정의되며 @Injectable() 데코레이터로 주석이 달린 클래스로 작성됩니다.
[코드 예시]
import { useInterceptors } from '@nestjs/common';
import { LoggingInterceptor } from './logging.interceptor';
@UseInterceptors(LoggingInterceptor)
@Get('data')
getData() {
// 이 엔드포인트는 LoggingInterceptor 인터셉터에 의해 처리됩니다.
}
이러한 데코레이터 함수를 사용하여 가드 및 인터셉터를 적용하면
Nest.js 애플리케이션의 라우터 핸들러에 중간 처리 과정을 추가하고 미들웨어를 구성할 수 있습니다.
이를 통해 요청 처리, 인증, 로깅 및 다양한 중간 처리 작업을 수행할 수 있어
애플리케이션을 보다 유연하게 구성할 수 있습니다.
'Wecode -기업협업 인턴 (부트캠프) > 기업협업 독학, 공부' 카테고리의 다른 글
typescript 구조 문법 (0) | 2023.11.01 |
---|---|
Postegre 정리 (0) | 2023.11.01 |
@nestjs/swagger 패키지,, @apiquery, @apiparams 데코레이터, 언제 @apiquery를 쓰고 언제 @apiparams를 쓰니 (0) | 2023.10.31 |
NestJS (0) | 2023.10.31 |
git flow 개념, branch 개념/ 종류 / 구분 (0) | 2023.10.31 |