NestJS Custom Decorators만들기
안녕하세요. 알렉스 입니다. 이번에는 NestJS에서 자주 사용하는 데코레이터를 커스텀으로 만들어 보도록 하겠습니다. 제가 백엔드 코드를 짤때 데코레이션을 자주 쓰는데 request의 토큰을 확인해야 할 상황이 있었습니다. 그런데 아무리 찾아봐도 NestJS에서 지원하는 Decorator가 없어서 제가 직접 만들 겸 블로그를 작성하게 되었습니다. 사진1) 흐름도 일단 Client에서 요청이 들어오면 해당 API에 있는 Decorator가 중간에서 Header값에 존재하는 Authorization을 분석합니다. 그리고 해당 토큰이 유효하면 결과를 Controller로 보내고 그렇지 않으면 에러로 응답합니다. 사진1은 일단 로그인 이후에 Client가 토큰을 갖고 있을때의 상황 입니다. 그래서 코드를 미리 작성하고 회원가입을 postman으로 하겠습니다. 사진2) Postman으로 회원가입 이제 Custom Decorators를 만들도록 하겠습니다. 간단하게 nest에서 제공하는 cli로 만들도록 하겠습니다. NestJS Cli를 이용하여 Decorator만들기 커스텀 Decorator bolier plate를 생성합니다. $ nest g d [경로(src에서 시작) 및 파일 이름] copy 저는 'nest g d /decorators/checkToken'으로 생성 하였습니다. import { SetMetadata } from '@nestjs/common' ; export const CheckToken = (... args : string []) => SetMetadata ( 'check-token' , args ); 위 코드와 같이 자동 생성된 것을 알수 있습니다. 위의 코드를 import { createParamDecorator , ExecutionContext , HttpException , HttpStatus } from '@nest...