반응형
이 강의는 인프런의 '따라하며 배우는 NestJS' 강의를 보고 학습한 글입니다.
Pipe
- Injectable 데코레이터가 달린 클래스
- 클라이언트의 request에 대한 data transformation, data validation 수행
- Nest는 메소드가 호출되기 직전에 파이프를 삽입하고, 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 동작
파이프의 종류
- Handler-level Pipes, 핸들러에 적용
- Parameter-level Pipes, 파라메터에 적용
- Global-level Pipes, main.ts에 적용
Bulit-in Pipes
- ValidationPipe
- ParseIntPipe
- ParseBoolPipe
- ParseArrayPipe
- ParseUUIDPipe
- DefaultValuePipe
실습에서 사용한 모듈
// DTO
export class CreateBoardDto {
@IsNotEmpty()
title: string;
@IsNotEmpty()
description: string;
}
// Controller
@Post()
@UsePipes(ValidationPipe)
createBoard(@Body() createBoarddto : CreateBoardDto): Board {
return this.boardsService.createBoard(createBoarddto);
}
커스텀 파이프 구현
- PipeTransform 인터페이스 구현
- 구현할 transform메소드는 파라메터로 (인자의 값, 메타데이터)를 받으며 해당 메소드에서 Return된 값은 Route 핸들러로 전해진다. 만약 예외가 발생한다면 클라이언트에 바로 전해진다.
Postgres & TypeORM
- postgresSQL 설치
- TypeORM 이용
- 유저 요청 -> Controller -> Service -> Repository(DB조작) -> Service -> Controller -> Response -> 유저 응답
데이터베이스를 이용한 CRUD 구현
- 현재 강의와 TypeORM 버전이슈로 인한 문제가 있는데, 아래 글을 참고하셔서 해결하시면 됩니다
반응형
'프로그래밍 > NestJS' 카테고리의 다른 글
NestJS 입문 - 권한, 로그, 설정 (0) | 2023.06.06 |
---|---|
NestJS 입문 - 인증기능 (0) | 2023.06.06 |
NestJS 입문 - 기본 요소, CRUD (0) | 2023.05.27 |