본문 바로가기
NestJs

[NestJs] ValidationPipe로 유효성 검사하기

by teamnova 2024. 3. 9.
728x90

안녕하세요. 오늘은 API 요청을 처리하기 전에 ValidationPipe를 사용하여 미리 요청한 값을 검사하는 로직을 짜보겠습니다.

먼저 

npm install class-validator class-transformer

유효성 검사를 위해 위 라이브러리를 설치해주세요.

그리고 전 시간에 작성한 board.dto.ts 파일에서 유효성 검사의 조건을 입력하겠습니다.

import { IsNotEmpty, IsString } from "class-validator";

export class CreateBoardDto {

    @IsNotEmpty()
    @IsString()
    title: string;

    @IsNotEmpty()
    @IsString()
    description: string;
}

@IsNotEmpty()그리고 @IsString()은 각 값이 비면 안된다는 의미와 전달 받은 값이 꼭 String이여야 한다는 class-validator가 제공하는 유효성 검사 데코레이터입니다.

그리고나서 board.controller.ts파일로 갑니다.

@Post()
    create(@Body(ValidationPipe)createBoardDto: CreateBoardDto) {
        return this.boardService.create(createBoardDto);
    }

Body 데코레이터에 ValidationPipe를 추가해주면 끝입니다. 그럼 테스트를 해볼게요.

위와 같이 title에는 빈값으로 요청을 보냈고 결과로 400에러로 왔으며 메시지는 title은 비워서 보내면 안된다고 합니다. 

오늘은 nestjs에서 제공하는 ValidationPipe를 이용해 유효성 검사를 해보았습니다. 다음 시간에 뵐게요.