Node
Nest.js
Validation

Validation

출처 : 패스트 캠퍼스 코드 팩토리 초격차 강의 (opens in a new tab)

Installation

pnpm install class-validator class-transformer

기본 제공

공통

  • @IsDefined()
  • @IsOptional()
  • @Equals()
  • @NotEquals()
  • @IsEmpty()
  • @IsNotEmpty()
  • @IsIn()
  • @IsNotIn()

타입

  • @Isboolean()
  • @IsDate()
  • @IsString()
  • @IsNumber()
  • @isInt()
  • @IsArray()
  • @IsEnum()

숫자

  • @IsDivisibleBy()
  • @isPositive()
  • @IsNegative()
  • @Min()
  • @Max()

문자

  • @Contains()
  • @NotContains()
  • @IsAlphanumeric()
  • @IsCreditCard()
  • @IsHexColor()
  • @MaxLength()
  • @MinLnegth()
  • @IsUUID()
  • @IsLatLng()

에러 반환 구조

{
  target: object;
  property: string;
  value: any;
  constraints?: {
    [type: string]: string;
  };
  children?: ValidationError[];
}
  • target : 검증한 대상
  • property : 검증 실패한 프로퍼티
  • value : 검증 실패한 값
  • constraints : 검증 실패한 제약조건
  • children : 프로퍼티의 모든 검증 실패 제약 조건

커스텀 에러 메시지

class User {
  @IdNotEmpty({ message: "아이디는 필수입니다." })
  id: string;
}