NestJs /Pipes란?

25gStroy·2022년 1월 6일

pipe란?

@injetable() 데코레이터로 주석이 달린 클래스입니다.
파이프 data transformation 과 data validation을 위해서 사용됩니다.
파이프는 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동합니다.
nest는 메소드가 호출되기 직전에 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 작동합니다.

Data Transformation?

입력데이터를 원하는 형식으로 변환
만약 숫자를 받길 원하는데 문자열 형식으로 온다면 파이프에서 자동으로 숫자로 바꿔줍니다

Data Validation?

요청된 데이터의 유효성체크

PIPE 사용방법

크게 세가지로 나뉜다.

  • Handler-level Pipes
  • Parameter_level Pipes
  • Global-level Pipes
    이름그대로의 레벨로 파이프를 사용하는 방법

Handler-level Pipes

  • 핸들러 레벨에서 @UsePipes를 사용해서 이용

Parameter_level Pipes

  • 파라미터 레벨의 파이프이기에 특정한 파라미터하나에게만 적용이 되는 파이프

Global-level Pipes

  • 글로벌파이프로서 애플리케이션레벨의 파이프
    • 클라이언트요청의 모든영역을 담당한다.

Built-in Pipes

Nest js 에 기본적으로 사용할 수 있게 만들어 놓은 6가지 파이프가 있다

  • ValidationPipe
  • ParseIntPipe
  • ParseBoolPipe
  • ParseArrayPipe
  • ParseUUIDPipe
  • DefaultValuePipe
    이름을보면 어떻게 사용하는지 느낌이 온다.

PIPE를 이용한 유효성 체크 예시

필요한 모듈

class-validatior, class-transformer

npm install class-validator class-transformer --save

doc

핸들러레벨의 파이프 사용예시

profile
애기 개발자

0개의 댓글