gpt4 book ai didi

typescript - 如何使用类验证器验证嵌套 js 中的 uuid 数组?

转载 作者:行者123 更新时间:2023-12-05 00:54:28 26 4
gpt4 key购买 nike

如何验证 uuid 数组?我正在使用预构建的 ParseArrayPipe 来验证有效负载数组结构。

@Post(':id/players')
addPlayers(
@Body(new ParseArrayPipe({ items: GamePlayerDto, separator: ',' }))
gamePlayers: GamePlayerDto,
) {
console.log(gamePlayers);
}
export class GamePlayerDto {
@IsUUID()
playerId!: string;
}

我不希望类验证器检查 playerId 属性是否在这里,但只有原始值

例如这是我的服务器应该收到的

["73aef2dd-c227-4774-b547-b3117b543863", "73aef2dd-c227-4774-b547-b3117b543863"]

最佳答案

您必须设置选项 - “each: true”。

export class GamePlayerDto {
@IsUUID(UUIDVersion,{each:true})
playerId!: string;
}

接受的 UUID 版本值 -'3' | '4' | '5' | '全部' | 3 | 4 | 5;

引用官方文档-“指定验证值是否为数组,并且必须验证其每个项目。”

本质上,playerId 的值被认为是一个数组,并且是 UUID 类型(指定版本),每个值都必须经过验证。

更新

还将您的请求处理程序更新为:

@Post(':id/players')
addPlayers(
@Body(ValidationPipe))
gamePlayers: GamePlayerDto,
) {
console.log(gamePlayers);
}

ValidationPipe 是 NestJS 中的默认管道,它与类验证器协同工作。它将验证传入的请求正文/参数等。如果它不符合 DTO 中设置的条件,则拒绝。

关于typescript - 如何使用类验证器验证嵌套 js 中的 uuid 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66226862/

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