Node.js/Nest.js
[Nest.js] PartialType을 이용한 UpdateDto 만들기
후뿡이
2023. 6. 1. 16:26
🎯 문제상황
CreateDto를 Update에도 사용하려고 하니 필요하지 않은 속성도 반드시 입력해줘야 하는 문제가 발생했다.
그래서 UpdateDto를 만들었다.
UpdateDto의 경우 속성은 CreateDto와 같고 일부분만 있으면 되므로 CreateDto의 성분에서 @IsNotEmpty() 데코레이터만 제거해 주었다.
( 모든 내용은 같고 @IsNotEmpty() 만 제거한 상태이다 ! )
결과는 대.실.패.
UpdateDto를 만들어 줬음에도 다른 속성 값을 입력하지 않았다는 문제가 발생했다.
새로운 방법이 필요함을 알게 됐다.
🎯 문제해결
UpdateDto의 경우 CreateDto와 속성은 같으나 일부 속성만을 가진다.
Nest.js 에서는 이 부분을 쉽게 구현하기 위해 "PartialType"을 지원한다.
위의 코드처럼 extends PartialType(상위 클래스 명) 을 해주면 끝이다.
이제 UpdateRecordDto는 CreateRecordDto와 같은 속성 값을 가지지만 일부 속성만을 가지는 class이다.
결과를 확인해 보자
너무 아름답게 affected 값이 1이 나오는 것을 확인할 수 있다.