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"을 지원한다.

 

Nest.js PartialType

 

위의 코드처럼 extends PartialType(상위 클래스 명) 을 해주면 끝이다.

 

이제 UpdateRecordDto는 CreateRecordDto와 같은 속성 값을 가지지만 일부 속성만을 가지는 class이다.

 

결과를 확인해 보자

 

너무 아름답게 affected 값이 1이 나오는 것을 확인할 수 있다.