[Nest.js] Pipe

sookyung kang·2023년 3월 16일

Nest.js

목록 보기
7/8
post-thumbnail

참고강의

Pipe 란?

파이프는 @Injectable () 데토레이터로 주석이 달린 클래스 입니다.
파이프는 data transformation과 data validation을 위해 사용됩니다.
파이프는 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동합니다.

Nest는 메소드가 호출되기 직전에 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 작동합니다.

client -> request -> pipe - 통과 -> response -> client
client -> request -> pipe - 실패 -> error

Data transformation 란?

입력 데이터를 원하는 형식으로 변환

Data validation 이란?

입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달합니다. 유효하지 않은 경우 error를 발생시킵니다.

파이프는 위 두가지 모든 경우에서 Route Handler가 처리하는 인수에 대해서 작동합니다.

그리고 파이프는 메소드를 바로 직전에 작동해서 메소드를 향하는 인수에 대해 변환 할 것이 있으면 변환하고 유효성 체크를 위해서도 호출됩니다.

Pipe를 사용하는 법(Binding Pipe)

  1. Handler-level Pipes
  2. Parameter-level Pipes
  3. Global-level Pipes

1. Handler-level Pipes

@UsePipes () 데코레이터를 이용해서 사용 합니다.
모든 파라미터에서 적용 됩니다.

2. Parameter-level Pipes

특정한 파라미터에만 적용되는 파이프 입니다.
ParameterPipe를 이용해서 사용합니다.

3. Global Pipes

client 에서 들어오는 모든 요청에 적용 됩니다.
main.ts 에 GlobalPipes를 넣으면 사용가능 합니다.

Built-in pipe

Nest.js 에는 기본적으로 사용할 수 있도록 만들어 놓은 6가지의 파이프가 있습니다.

  • ValidationPipe
  • ParseIntPipe
  • ParseBoolPipe
  • ParseArrayPipe
  • ParseUUIDPipe
  • DefaultValuePipe

0개의 댓글