This content got low rating by people.

[개발] # 7. Nest.js - Pipe 설정

Words
148
Reading
1 min
Listen
Play
5y

안녕하세요 realmankwon@realmankwon입니다.
alt

DTO를 사용할때 main.ts 에 선언한 Pipe의 옵션에 따라 더 편하게 사용할 수 있는 기능들이 있습니다.

app.useGlobalPipes(
    new ValidationPipe({
      whitelist: true,
      forbidNonWhitelisted: true,
      transform: true,
    }),
  );


  • whitelist : true 는 DTO 에 정의된 것들만 통과하도록 하는 것입니다.
  • forbidNonWhitelisted : true 는 DTO 에 정의되지 않은 것들은 제한하는 것입니다.
  • transform : true 는 사용자로 부터 받은 값의 타입을 시스템에서 사용하는 타입으로 자동 변환해 주는 것입니다.

transform 에 대해서 좀 더 설명을 하자면 가령 DB 에서 id 가 number 로 정의되어 있고 사용자는 string으로 전송을 하였다면 백단에서는 이를 다음과 같이 변환시켜주어야 합니다.

   getOne(id: string) : Movie {
        const movie = this.movies.find(movie => movie.id === +id);
   }

하지만 DTO 의 경우는 정의된 타입이 아니면 타입변환 이전에 이미 exception 일 발생하기 때문에 아예 처리가 불가능하게 됩니다.
이러한 것을 해결하기 위해 transform : true로 설정을 하면 자동으로 타입을 변경하여 처리가 되기 때문에 편리하게 사용할 수 있는 기능입니다.