파이프
요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 것.
- ValidationPipe
- ParseIntPipe / ParseBoolPipe / ParseArrayPipe / ParseUUIDPipe : 전달된 인수의 타입을 검사
- DefaultValuePipe : 쿼리 매개변수가 생략된 경우 기본값 설정
유효성 검사 라이브러리 class-validator, class-transformer 설치하기
npm i class-validator class-transformer
mapped-types 설치하기
npm i mapped-types
main.ts 에 유효성 검사 pipe 생성하기
transform: request로 들어온 파라미터를 원하는 타입으로 변경해준다. true로 해야한다.
app.useGlobalPipes(new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
transform: true
}));
dto > create-movie.dto.ts 생성하기
export class CreateMovieDto {
@IsString()
readonly title: string;
@IsNumber()
readonly year: number;
@IsOptional()
@IsString({each: true})
readonly genres: string[];
}
dto > update-movie.dto.ts
필수는 아닌 파라미터
export class UpdateMovieDto extends PartialType(CreateMovieDto) {}
controller 에서 요청이들어오면 dto 타입으로 체크하면 된다.
유효성 검사기 추가를함으로써 controller, service 작성이 편리해졌다.
728x90
반응형
'개발공부 > NestJS' 카테고리의 다른 글
[노마드 코더 NestJS로 API 만들기] 3 Testing Jest (0) | 2023.08.16 |
---|---|
[NestJs] Modules, Injection (0) | 2023.08.16 |
[노마드 코더 NestJS로 API 만들기] 2 service (0) | 2023.08.12 |
2 Rest API - Controller, Route [노마드 코더 NestJS로 API 만들기] (0) | 2023.08.12 |
[NestJS] 초기 세팅 (0) | 2023.08.11 |
댓글