gpt4 book ai didi

javascript - 使用类验证器和 nestjs 验证嵌套对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:04:00 31 4
gpt4 key购买 nike

我正在尝试使用类验证器和 NestJS 来验证嵌套对象。我已经尝试过遵循这个 thread通过使用 class-transform 中的 @Type 装饰器并没有任何运气。这就是我所拥有的:

DTO:

class PositionDto {
@IsNumber()
cost: number;

@IsNumber()
quantity: number;
}

export class FreeAgentsCreateEventDto {

@IsNumber()
eventId: number;

@IsEnum(FinderGamesSkillLevel)
skillLevel: FinderGamesSkillLevel;

@ValidateNested({ each: true })
@Type(() => PositionDto)
positions: PositionDto[];

}

我也在使用内置的 nestjs 验证管道,这是我的 Bootstrap :

async function bootstrap() {
const app = await NestFactory.create(ServerModule);
app.useGlobalPipes(new ValidationPipe());
await app.listen(config.PORT);
}
bootstrap();

它对其他属性工作正常,对象数组是唯一不工作的。

最佳答案

对我来说,我可以使用 'class-transformer' 验证嵌套对象

import { Type } from 'class-transformer';

完整示例:

import {
MinLength,
MaxLength,
IsNotEmpty,
ValidateNested,
IsDefined,
IsNotEmptyObject,
IsObject,
IsString,
} from 'class-validator';
import { Type } from 'class-transformer';

class MultiLanguageDTO {
@IsString()
@IsNotEmpty()
@MinLength(4)
@MaxLength(40)
en: string;

@IsString()
@IsNotEmpty()
@MinLength(4)
@MaxLength(40)
ar: string;
}

export class VideoDTO {
@IsDefined()
@IsNotEmptyObject()
@IsObject()
@ValidateNested()
@Type(() => MultiLanguageDTO)
name!: MultiLanguageDTO;
}

关于javascript - 使用类验证器和 nestjs 验证嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53786383/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com