Joã*_*rto 2 javascript typescript graphql class-validator nestjs
我将类验证器与 NestJS 结合使用,并尝试使用以下布局验证对象数组:
[
{gameId: 1, numbers: [1, 2, 3, 5, 6]},
{gameId: 2, numbers: [5, 6, 3, 5, 8]}
]
Run Code Online (Sandbox Code Playgroud)
我的解析器
createBet(@Args('createBetInput') createBetInput: CreateBetInput) {
return this.betsService.create(createBetInput);
}
Run Code Online (Sandbox Code Playgroud)
我的 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[];
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一些解决方案,但没有成功,老实说,我不知道该怎么做。
如何修改 DTO 以获得必要的验证?
有一些选项class-validator用于class-transformer验证嵌套对象,您的数组也是一个嵌套对象,因此您可以像这样验证:
import { Type } from 'class-transformer';
import { IsArray, ValidateNested } from 'class-validator';
class ItemsOfBet {
@IsArray()
@ValidateNested({ each: true })
@Type(() => CreateBetInput)
items: CreateBetInput[];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6903 次 |
| 最近记录: |