728x90
반응형
node.js 의 express-validator처럼 Nest.js 에는 유효성 검증을 할 수 있는 class-validator가 있다.
@IsString, @IsNumber, @IsOptional 처럼 검증을 쉽고 편하게 할 수 있는 데코레이터를 제공한다.
나는 데이터 전송 객체인 DTO에 다음 예와 같이 데코레이터를 적용해보았다.
import { IsString } from 'class-validator';
import { IsNumber } from 'class-validator';
import { IsOptional } from 'class-validator';
export class CreateMovieDTO {
@IsString()
readonly title: string;
@IsNumber()
readonly year: number;
@IsOptional()
@IsString({ each: true })
readonly genres: string[];
}
확실히 express-validator 보다 간결하고 보기 좋게 사용할 수 있었다.
배열을 받는 경우 each: true 조건으로 각 항목을 모두 검사하도록 할 수 있다.
아래 사진은 위 DTO를 받는 API에 이상한 변수를 삽입하였을때 데코레이터가 어떤 에러를 발생시키는지 확인한 예다.
위 데코레이터 말고도 @MAX(), @IsOptional(), @IsDate() 등 아주 다양한 데코레이터가 있다. 더 알아보고 싶다면 아래 레퍼런스 참고 !
728x90
반응형
'IT > Nest.js' 카테고리의 다른 글
Nest.js ValidationPipe 사용하여 유효성 검증 강화하기 (0) | 2023.04.02 |
---|---|
Nest.js class-validator IsOptional 적용 시 오류 (0) | 2023.03.30 |
nest : 이 시스템에서 스크립트를 실행할 수 없으므로.. (0) | 2023.02.16 |