[Nest.js] validation pipe

Younghwan Cha·2023년 10월 1일
0

Nest.js

목록 보기
24/27
post-thumbnail

Pipes 는 크게 두가지 기능을 수행한다

  1. Validation
    input 값이 유효한 값인지 확인하고 아닐 경우 error 를 던진다

  2. Transformation
    input 값을 원하는 형태로 변환한다 ( string to integer )

// main.ts

  app.useGlobalPipes({
  	new ValidationPipe({
    	whitelist: true,
        transform: true,
        transformOptions: {
        	enableImplicitConversion: true,
		}
    })
  })

whitelist
true로 설정하면, DTO에 정의되지 않은 프로퍼티 또는 validation decorator 가 존재하지 않는 field 를 자동으로 제거한다. 이는 클라이언트로부터 예상치 못한 필드가 전송되는 것을 방지하고, DTO에 정의된 형식에 따라 데이터를 받기 위해 사용된다.

transform:
true로 설정하면, 파이프는 성공적인 검증 후 데이터를 원하는 타입으로 자동 변환합니다.
예를 들어, URL 경로에서 가져온 문자열을 숫자로 자동 변환하는 경우에 유용합니다.

transformOptions:
데이터 변환에 대한 추가 옵션을 제공합니다.

enableImplicitConversion:
true로 설정하면, 명시적으로 @Type 데코레이터를 사용하지 않아도 데이터 타입을 암시적으로 변환합니다.
예를 들어, 문자열 'true'를 불리언 true로, 문자열 '1'을 숫자 1로 변환합니다.

[class-validator 로 dto 정의하기]https://blog.naver.com/gi_balja/223056337639

profile
개발 기록

0개의 댓글