728x90
반응형
전 글에서 movieData DTO를 만들어봤다.
이번 글에선 updateData DTO를 만들어보겠다.
먼저 update-movie.dto.ts 파일을 만든다.
update-movie.dto.ts
import {IsString, IsNumber} from 'class-validator'
export class CreateMovieDto {
@IsString()
readonly title?: string;
@IsNumber()
readonly year?: number;
@IsString({each:true})
readonly genres?: string[];
}
movieData의 DTO와 다른 점은 물음표가 있다는 점인데, 이는 필수사항은 아니게 한다는 뜻이다.
그다음 Controller와 Service에 추가하는 방법까지는 똑같다.
여기서 우리는 부분 객체라는 것을 써볼 것이다. 먼저 아래와 같이 설치해준다.
$npm i @nextjs/mapped-types
그다음 PartialType을 사용하기 위해 코드를 바꿔준다.
import {IsString, IsNumber} from 'class-validator'
import { PartialType } from '@nestjs/mapped-types';
import { CreateMovieDto } from './create-movie.dto';
export class UpdateMovieDto extends PartialType(CreateMovieDto) {}
이런식으로 CreateMovieDto를 상속할 수 있게 만들 수 있다. 또한 각각의 요소가 필수사항이 아니게끔 만들어준다.
이렇게 하고 POST 메소드로 Create하고 PATCH로 업데이트를 실행해보면 성공!
728x90
반응형
'Back-End > Nest.js' 카테고리의 다른 글
Nest.js | REST API | Express on NestJS (0) | 2021.09.29 |
---|---|
Nest.js | REST API | Modules (0) | 2021.09.29 |
Nest.js | REST API | DTOs and Validation(1) (0) | 2021.09.29 |
Nest.js | REST API | Movies Service(2) (0) | 2021.09.29 |
Nest.js | REST API | Movies Service(1) (0) | 2021.09.28 |