반응형
DTO의 기본값을 설정할 수 있습니까?
쿼리가 비어 있을 때 기본값을 사용할 수 있는 방법이 있습니까?
쿼리에 대해 다음 DTO가 있는 경우:
export class MyQuery {
readonly myQueryItem: string;
}
그리고 내 요청에는 질문이 포함되지 않습니다.myQuery.myQueryItem
정의되지 않습니다.기본값이 되도록 하려면 어떻게 해야 하나요?
DTO 클래스에서 직접 기본값을 설정할 수 있습니다.
export class MyQuery {
readonly myQueryItem = 'mydefault';
}
기본값이 사용되도록 클래스를 인스턴스화해야 합니다.예를 들어 다음을 사용할 수 있습니다.ValidationPipe
옵션으로transform: true
값이 쿼리 매개 변수에 의해 설정되면 값이 재정의됩니다.
@Get()
@UsePipes(new ValidationPipe({ transform: true }))
getHello(@Query() query: MyQuery) {
return query;
}
왜 이것이 작동합니까?
파이프는 모든 장식가에 적용됩니다.@Body()
,@Param()
,@Query()
값을 변환할 수 있습니다(예:ParseIntPipe
) 또는 검사를 수행합니다(예:ValidationPipe
).
더ValidationPipe
내용.class-validator
그리고.class-transformer
검증을 위하여입력(일반 자바스크립트 객체)에 대해 유효성 검사를 수행할 수 있으려면 먼저 주석이 달린 dto 클래스로 변환해야 합니다. 즉, 클래스의 인스턴스를 만듭니다.설정과 함께transform: true
자동으로 dto 클래스의 인스턴스를 만듭니다.
예(기본적으로 작동 방식):
class Person {
firstname: string;
lastname?: string = 'May';
constructor(person) {
Object.assign(this, person);
}
}
// You can use Person as a type for a plain object -> no default value
const personInput: Person = { firstname: 'Yuna' };
// When an actual instance of the class is created, it uses the default value
const personInstance: Person = new Person(personInput);
D 값만 지정하면 다음과 같습니다.
export class MyQuery {
readonly myQueryItem: string = 'value default';
}
언급URL : https://stackoverflow.com/questions/55478828/is-it-possible-to-set-default-values-for-a-dto
반응형
'IT' 카테고리의 다른 글
PHPExcel 라이브러리를 대형으로 설치하려면 어떻게 해야 합니까? (0) | 2023.06.17 |
---|---|
Firebase 인증/권한 없는 도메인입니다.도메인이 인증되지 않았습니다. (0) | 2023.06.17 |
충돌 분석 - 빌드/버전을 삭제하려면 어떻게 해야 합니까? (0) | 2023.06.17 |
숫자 뒤에 'u'는 무슨 뜻입니까? (0) | 2023.06.17 |
C: strtok_r의 올바른 사용법 (0) | 2023.06.17 |