7장, 8장 - 파이프, 영속화

2023. 4. 6. 16:46개발 관련 책 읽기/NestJS로 배우는 백엔드 프로그래밍

✅ 아래 내용들에 대해서 알아보자

- 파이프
- 영속화

 

 

 

파이프

파이프는 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다.

 

 

파이프는 보통 2가지 목적으로 사용한다

  • 변환: 입력 데이터를 원하는 형식으로 변환, ex) /users/user/1내의 경로 매개변수 문자열 '1'을 number로 변환
  • 유효성 검사: 입력 데이터가 사용자가 정한 기준에 유효하지 않은 경우 예외 처리

 

@nest/common 패캐지에 여러 내장 파이프가 존재한다

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

 

ParseIntPipe 예시

async findOne(
    @Param('id', new ParseIntPipe({ errorHttpStatusCode: HttpStatus.NOT_ACCEPTABLE }),) id: number,
    ) {
    return 1;
  }

 

 

DefaultValuePipe 예시

@Get('/all')
findAll(
  @Query('offset', new DefaultValuePipe(0), ParseIntPipe) offset: number,
  @Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
) {
  console.log(offset, limit);
}

 

 

유효성 검사 파이프 만들기

ts/js 런타임시 유효성 검사를 위한 패키지인 class-validator와 class-transformer 라이브러리를 사용하여 유효성 검사를 해보자.

npm i --save class-validator class-transformer

 

@IsString()
@MinLength(1)
@MaxLength(20)
private _name: string;

@IsEmail()
private _email: string;
private _password: string;

 

 

영속화

 ts/js 런타임시 유효성 검사를 

반응형

'개발 관련 책 읽기 > NestJS로 배우는 백엔드 프로그래밍' 카테고리의 다른 글

5, 6장 - 모듈/동적 모듈  (0) 2023.04.05
4장 - 프로바이더  (0) 2023.04.04
3장 - Hello NestJS  (0) 2023.04.04
1장 - Hello NestJS  (0) 2023.04.03