🎯 문제상황
CreateDto를 Update에도 사용하려고 하니 필요하지 않은 속성도 반드시 입력해줘야 하는 문제가 발생했다.
그래서 UpdateDto를 만들었다.
UpdateDto의 경우 속성은 CreateDto와 같고 일부분만 있으면 되므로 CreateDto의 성분에서 @IsNotEmpty() 데코레이터만 제거해 주었다.
( 모든 내용은 같고 @IsNotEmpty() 만 제거한 상태이다 ! )
결과는 대.실.패.
UpdateDto를 만들어 줬음에도 다른 속성 값을 입력하지 않았다는 문제가 발생했다.
새로운 방법이 필요함을 알게 됐다.
🎯 문제해결
UpdateDto의 경우 CreateDto와 속성은 같으나 일부 속성만을 가진다.
Nest.js 에서는 이 부분을 쉽게 구현하기 위해 "PartialType"을 지원한다.
위의 코드처럼 extends PartialType(상위 클래스 명) 을 해주면 끝이다.
이제 UpdateRecordDto는 CreateRecordDto와 같은 속성 값을 가지지만 일부 속성만을 가지는 class이다.
결과를 확인해 보자
너무 아름답게 affected 값이 1이 나오는 것을 확인할 수 있다.
'Node.js > Nest.js' 카테고리의 다른 글
[Nest.js] Custom Repository Unit Testing (TypeORM) (0) | 2023.06.10 |
---|---|
[Nest.js] Entity와 DTO의 차이점 - [Error] unnamed portal parameter (0) | 2023.06.06 |
[Nest.js] ERROR [ExceptionsHandler] invalid input syntax for type integer (0) | 2023.06.03 |
[Nest.js] No metadata for ~~ was found 에러 (0) | 2023.06.01 |
[Nest.js] Nest.js의 특징과 철학 (0) | 2023.05.30 |