[NestJS] 유저 데이터 유효성 체크

·2023년 2월 12일
0

NestJS

목록 보기
3/6

Class-validator

  • 유저를 생성할 때 원하는 이름의 길이 or 비밀번호 길이 등의 유효성 체크 구현

  • 유효성 체크를 하기 위해서는 class-validator 모듈을 이용

Dto 파일에서 Request로 들어오는 값을 정의해주고 있기 때문에 Dto 파일에 class-validator를 이용해서 유효성 조건을 넣어주겠습니다.

import { IsString, Matches, MaxLength, MinLength } from 'class-validator';

export class AuthCredentialsDto {
  @IsString()
  @MinLength(4)
  @MaxLength(20)
  username: string;

  @IsString()
  @MinLength(4)
  @MaxLength(20)
  // 영어랑 숫자만 가능한 유효성 체크
  @Matches(/^[a-zA-Z0-9]*$/, {
    message: 'password only accepts english and number',
  })
  password: string;
}
  • 원하는 에러 메시지 설정
    => validationOptionmessage 넣어줌
Matches(pattern: RegExp, validationOptions?: ValidationOptions)

ValidationPipe

요청이 컨트롤러에 있는 핸들러로 들어왔을 때 Dto에 있는 유효성 조건에 맞게 체크를 해주려면 ValidationPipe을 넣어주어야 합니다.

auth.controller.ts

@Body(ValidationPipe) authCredentialsDto: AuthCredentialsDto, // 추가
profile
개발자가 되는 과정

0개의 댓글