You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
이때 해결할 수 있는 방법으로 DTO에 class-transformer을 사용하여 형 변환을 해주면 해당 pipe의 유효성 검사를 통과 시킬 수 있음.
주의 할 부분은 타입을 완전히 변환 시킨 것은 아니라는 점으로 controller에서 console.log(listMemberDto.page); 를 출력해보면 그대로 string인 것을 확인할 수 있음.
[ DTO (to-be) ]
import {
IsNotEmpty,
IsNumber,
} from 'class-validator';
import { Type } from 'class-transformer';
export class ListMemberDto {
@IsNotEmpty()
@IsNumber()
@Type(() => Number)
page: number;
@IsNotEmpty()
@IsNumber()
@Type(() => Number)
pageSize: number;
}
The text was updated successfully, but these errors were encountered:
develjsw
changed the title
postman으로 queryParams type 선언 불가한 경우
@Query(new ValidationPipe()) DTO에서 string타입이 아닌 다른 타입 선언 후 postman에서 확인하고자 할 때
Jun 5, 2023
아래 소스와 같이 query param을 받는 DTO안에 type을 number로 선언해둔 경우
postman에서는 기본 타입인 string을 제외하고 다른 타입을 사용할 수 없기에 에러 발생하여 테스트 불가.
[ controller ]
[ DTO (as-is) ]
<error 발생>
{
"status": 400,
"message": "Bad Request Exception"
}
이때 해결할 수 있는 방법으로 DTO에 class-transformer을 사용하여 형 변환을 해주면 해당 pipe의 유효성 검사를 통과 시킬 수 있음.
[ DTO (to-be) ]
The text was updated successfully, but these errors were encountered: