ehdgusdl9177.log
로그인
ehdgusdl9177.log
로그인
NestJS Pipes
김동현
·
2021년 11월 28일
팔로우
0
NestJS
목록 보기
9/11
Pipe란?
파이프는 @Injectable() 데코레이터로 주석이 달린 클래스이다.
파이프는 data transformation과 data vaildation을 위해서 사용된다.
파이프는 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동한다.
Nest는 메소드가 호출되기 직전에 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 작동한다.
Data transformation
입력 데이터를 원하는 형식으로 변환(예: 문자열에서 정수로)
만약 숫자를 받길 원하는데 문자열 형식으로 온다면 파이프에서 자동으로 숫자로 바꿔준다.
Data validation
입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달하면 된다.
그렇지 않으면 데이터가 올바르지 않을 때 예외를 발생시킨다.(예: 만약 이름의 길이가 10자 이하여야하는데 10자 이상이 되면 에러를 발생시킨다.)
PIPE 사용(Binding Pipes)
파이프를 사용하는 방법은 세가지로 나눠질 수 있다.
Handler-level Pipes
핸들러 레벨에서 @usePipes() 데코레이터를 이용해서 사용할 수 있다.
이 파이프는 모든 파라미터에 적용된다.(title, description)
Parameter-level Pipes
파라미터 레벨의 파이프 이기에 특정한 파라미터에게만 적용이되는 파이프이다.(title만 적용)
Global Pipes
글로벌 파이프로서 애플리케이션 레벨의 파이프이다.
클라이언트에서 들어오는 모든 요청에 적용이 된다.
가장 상단 영역인 main.ts 에 넣어주면 된다.
Built-in Pipes
NestJS에 기본적으로 사용할 수 있게 만들어 놓은 6가지의 파이프가 있다.
ValidationPipe
ParseIntPipe
ParseBoolPipe
ParseArrayPipe
ParseUUIDPipe
DefaultValuePipe
ParseIntPipe
원래는 파라미터 값으로 숫자가 와야하는 핸들러지만 숫자가 아닌 문자열을 보내주게 되면
김동현
개발자로서의 첫걸음
팔로우
이전 포스트
NestJS DTO
다음 포스트
NestJs TypeORM
0개의 댓글
댓글 작성