如何在 NestJS 中编写嵌套的 DTO
How to write nested DTOs in NestJS
我是 NestJS 的初学者,我想为以下结构编写一个 DTO -
{
something: {
info: {
title: string,
score: number,
description: string,
time: string,
DateOfCreation: string
},
Store: {
item: {
question: string,
options: {
item: {
answer: string,
description: string,
id: string,
key: string,
option: string
}
}
}
}
}
}
我想为那个嵌套的数据对象编写一个 DTO。我找不到在 NestJS 中编写嵌套 DTO 的可靠示例。我是 NestJS 的初学者,之前从未使用过 DTO。所以请不要假设我知道什么。我将它与 Mongoose 一起使用。
您将必须为架构中的每个对象创建单独的 classes 和一个将导入所有 classes 的主 class。
class Info {
readonly title:string
readonly score:number
readonly description:string
readonly dateOfCreation:Date
}
export class SampleDto {
@Type(() => Info)
@ValidateNested()
readonly info: Info
...Follow same for the rest of the schema
}
参考:https://github.com/typestack/class-validator#validating-nested-objects
//示例:
export class UserBaseDto {
@ApiProperty({
type: String,
required: true,
description: 'email user, minlength(4), maxlength(40)',
default: "test@email.com",
})
@IsString()
@MinLength(4)
@MaxLength(40)
@IsNotEmpty()
email: string;
//....enter code here
}
我是 NestJS 的初学者,我想为以下结构编写一个 DTO -
{
something: {
info: {
title: string,
score: number,
description: string,
time: string,
DateOfCreation: string
},
Store: {
item: {
question: string,
options: {
item: {
answer: string,
description: string,
id: string,
key: string,
option: string
}
}
}
}
}
}
我想为那个嵌套的数据对象编写一个 DTO。我找不到在 NestJS 中编写嵌套 DTO 的可靠示例。我是 NestJS 的初学者,之前从未使用过 DTO。所以请不要假设我知道什么。我将它与 Mongoose 一起使用。
您将必须为架构中的每个对象创建单独的 classes 和一个将导入所有 classes 的主 class。
class Info {
readonly title:string
readonly score:number
readonly description:string
readonly dateOfCreation:Date
}
export class SampleDto {
@Type(() => Info)
@ValidateNested()
readonly info: Info
...Follow same for the rest of the schema
}
参考:https://github.com/typestack/class-validator#validating-nested-objects
//示例:
export class UserBaseDto {
@ApiProperty({
type: String,
required: true,
description: 'email user, minlength(4), maxlength(40)',
default: "test@email.com",
})
@IsString()
@MinLength(4)
@MaxLength(40)
@IsNotEmpty()
email: string;
//....enter code here
}