requestDto의 entity 변환로직인 toEntity() 메서드가 인식되지 않는 문제 발생
// request dto
public toEntity(): User {
return User.createSignUpUser(
this._email,
this._userName,
this._password,
this._checkPassword,
);
}
에러 메세지: TypeError: params.toEntity is not a function
에러 메세지에 따르면 DTO의 엔티티 변환 함수인 toEntity()를 인식하지 않는 것을 확인하기 위해 요청 객체의 파라미터를 확인해 본 결과 사용자가 입력한 값만 포함되어 있기 때문에 변환 로직이 없다고 판단
{
email: akak@gmail.com,
userName: galaxian,
password: password,
password: password
}
//main.ts
app.useGlobalPipes(new ValidationPipe({ whitelist: true, transform: true }));
ValidationPipe 옵션의 transform을 true로 설정하게 되면
validation이 끝난 자바스클립트 요청 객체를 개발자가 정의한 DTO 클래스로 자동 변환을 시켜주는 역할을 한다.
따라서 dto가 역직렬화 되어 toEntity 메서드가 정상적으로 동작하게된다.