Nest.js-Pipe.pdf
파이프란?
Injectable()
데코레이터로 주석이 달린 클래스 중 하나로,
- 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다.
[파이프의 사용 목적]
- 변환(Transformation) : 입력 데이터를 원하는 형식(출력)으로 변환
- ex)
/users/user/1
: 경로 파라미터 문자열 1을 정수로 변환
- 유효성 검사(Validation) : 입력 데이터가 사용자가 정한 기준에 유효하지 않은 경우 예외 처리
- ex) 게시글의 상태를 수정할 때, 상태 값은
BoardStatus
에 선언된 값이어야 한다.
→ 두 경우 모두 파이프는 Controller의 Route parameter에 의해 처리되는 인수에서 작동한다.
💡 Nest는 메소드가 호출되기 직전에 파이프를 삽입하고, 파이프는 메소드로 향하는 인수를 수신한다.
: 메소드 호출 → 파이프 → 컨트롤러
들어가기 전에 .. 파이프와 필터의 차이
-
파이프
- 요청에서 들어온 데이터(본문이나 매개변수 등등)를 사용
- 일부 유효성 검사 및 변환을 수행하여 서버가 기대하는 형태인지를 확인한다.
-
필터
- 요청 실행 중에 발생한 오류를 포착하여 처리한다.
- 오류를 다시 클라이언트에게 보내고, 적절한 오류 코드를 보낸다.