[nest.js] Pipe

김민재·2025년 4월 20일

nest.js

목록 보기
47/63

🚒 Pipe

  • 컨트롤러에서 제공되는 Body 데이터 값의 데이터의 변환(Transform)과 검증(Validation)을 처리하는 데 사용하는 도구

    • 데이터 변환: String -> Integer 변환
    • 데이터 검증: 입력된 값이 정상적인 값인지 확인, 아니라면 에러
  • 요청의 데이터를 가공하거나 검사하는 클래스 또는 함수

  • Controller에 들어가기 전데이터를 조작하거나 유효성 검사를 할 수 있다.

🏈 Pipe 사용 시점

  1. 요청 본문(Body)

  2. 쿼리 파라미터(Query)

  3. 라우트 파라미터(Params)

  4. 헤더/쿠키 등

  • 컨트롤러 메서드에 진입하기 전에 자동 실행된다.

🎩 기본 Pipe Type

  1. ValidationPipe: 모든 Validation Annotation이 적용되도록 해준다.(main.ts에서 사용)
 // DTO validator 검증 (class-validator)
  app.useGlobalPipes(
    new ValidationPipe({
      whitelist: true, // 없는 필드를 작성하면 무시
      forbidNonWhitelisted: true, // 없는 필드를 작성하면 에러
    }),
  );
  1. ParseIntPie: Int 값으로 변환, 검증한다.

  2. ParseFloatPipe: Float 값으로 변환, 검증한다.

  3. ParseBoolPipe: Bool 값으로 변환, 검증한다.

  4. ParseArrayPipe: Array 값으로 변환, 검증한다.

  5. ParseUUIDPipe: UUID 값으로 변환, 검증한다.

  6. ParseEnumPipe: Enum 값으로 변환, 검증한다.

  7. DefaultValuePipe: 기본값을 설정한다.

  8. ParseFilePipe: 파일을 검증한다.

profile
개발 경험치 쌓는 곳

0개의 댓글