我在 NestJS 中使用類驗證器并嘗試使用以下布局驗證物件陣列:
[
{gameId: 1, numbers: [1, 2, 3, 5, 6]},
{gameId: 2, numbers: [5, 6, 3, 5, 8]}
]
我的決議器
createBet(@Args('createBetInput') createBetInput: CreateBetInput) {
return this.betsService.create(createBetInput);
}
我的 createBetInput DTO
import { InputType, Field, Int } from '@nestjs/graphql';
import { IsArray, IsNumber } from 'class-validator';
@InputType()
export class CreateBetInput {
@IsNumber()
@Field(() => Int)
gameId: number;
@Field(() => [Int])
@IsArray()
numbers: number[];
}
我已經嘗試了一些解決方案,但我沒有成功,老實說,我不知道如何做到這一點。
如何修改 DTO 以獲得必要的驗證?
uj5u.com熱心網友回復:
有class-validator與class-transformer驗證嵌套物件混合的選項,您的 Array 也是一個嵌套物件,因此您可以像這樣驗證:
import { Type } from 'class-transformer';
import { IsArray, ValidateNested } from 'class-validator';
class ItemsOfBet {
@IsArray()
@ValidateNested({ each: true })
@Type(() => CreateBetInput)
items: CreateBetInput[];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/382650.html
標籤:javascript 打字稿 图形 嵌套 类验证器
