问题标签 [class-validator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2389 浏览

parameters - 使用@Param 时,Nestjs 验证管道无法按预期工作

我有一个端点,它正在使用一个安静的 url 服务/getDocument/:documentId 我已经设置了一个带有验证的路径对象,并且当使用 documentId 调用端点时一切都很好。当我离开 documentId 时,我收到一个 404 错误,它没有给我来自 @IsNotEmpty 消息的消息。当我将端点转换为使用 @Query 时,我得到了我期待的消息。

服务

这是我收到的信息

我的路径

当我将端点转换为使用 @Query 时,我得到了预期的响应。状态 422 和来自 dto 的此消息

更新的控制器

回复

0 投票
2 回答
4395 浏览

typescript - 转换 multipart/form-data 请求正文,然后使用 validationPipe

我正在尝试使用转换将formData请求从字符串转换为json对象,然后使用validationPipe(类验证器)进行验证,但我得到了

尝试调试后,我进入我的控制器 3 次,对象保存在数据库中,但没有验证和内部 transformJSONToObject 9 次...

我的 main.ts

我的nestjs dto

这是我的控制器

0 投票
2 回答
8719 浏览

javascript - 验证不适用于部分- 巢穴

我想在我的 CRUD API 上应用服务器端验证。有问题的实体称为Employee。我正在使用employee.dto(如下所示)创建和更新端点。

class-validator 包在该create方法上运行良好,但当我Partial<EmployeeDTO>在 update 方法中使用它时会忽略 DTO 中的所有规则。

请使用下面的代码作为参考。

套餐

员工 DTO

员工控制器

可能的解决方案

我可以想到的是为createupdate方法创建单独的 DTO,但我不喜欢重复代码的想法。

0 投票
1 回答
9402 浏览

javascript - How to return a custom response from the class-validator in NestJS

Is it possible to return a custom error response from class-validator inside of NestJs.

NestJS currently returns an error message like this:

However the service that consumes my API needs something more akin to:

0 投票
2 回答
8101 浏览

node.js - @IsPhoneNumber() npm 类验证器如何添加多个国家代码

在 Nest js dto 中,我想用多个国家的正则表达式验证用户手机号码。我怎样才能做到这一点?

0 投票
2 回答
2317 浏览

javascript - 如何在类型中传递泛型类型?

我正在尝试为 Typestack 类验证器创建一个新的约束。“IsUnique”约束将实体作为类型,并将它的列作为参数来检查该列是否在数据库中不存在并且是唯一的。

我已经尝试了下面的代码,但不知何故我无法通过 registerDecorator 中的验证器键将类型传递给“IsUniqueConstraint” 。因为,我是 Typescript 的新手,所以我不太了解它的概念。

有人可以帮我知道我们该怎么做吗?

is-unique.constraint.ts

用户.dto.ts

0 投票
1 回答
6589 浏览

mongoose - class-validator 对 IsDateString 的验证失败,“必须是 ISOString 但记录的值显然是 ISO 字符串?

确切的错误:

类中的字段:

获取来自数据库的文档:

调用验证器:

我也试过打电话order.toObject(),但效果相同。

0 投票
5 回答
55410 浏览

arrays - Class-validator - 验证对象数组

我正在使用带有 NestJS 的 class-validator 包,并且我希望验证一个对象数组,这些对象需要恰好有 2 个具有相同布局的对象:

到目前为止,我有:

根据@kamilg 的回复(我能够强制执行 2 个元素):

我仍然可以传递一个空数组或一个包含与 AuthParam 无关的其他对象的数组。

我应该如何修改它来获得验证?

另外,我如何在数组中强制执行 2 个元素?MinLength(2) 似乎与字符串有关...(已解决)

0 投票
1 回答
427 浏览

typescript - 使用字符串文字数组作为类型

我想将单个数组const fruits = ['banana', 'apple', 'orange']用作普通数组,并将type.

我应该能够做到这一点: const x: fruits // => only accepts 'banana', 'apple' or 'orange'

并且还能够做到这一点: @IsIn(fruits)


我试图将数组声明为<const>,例如:

但是@IsIn(fruits)会返回以下错误:

所以我想如果我创建了两个数组,一个普通数组和一个只读数组,它应该可以工作。所以我尝试了这个:

但现在Fruits评估为type: string而不是type: "banana" | "apple" | "orange".

0 投票
1 回答
1250 浏览

javascript - 在验证过程中使用自定义状态码进行响应

我想在验证阶段更改状态码。

有了这些规则,如果请求在请求正文中使用无效的电子邮件属性到达我们的端点,应用程序将自动响应 400 错误请求代码。

我的问题是,是否可以将状态码从 400 更改为 422(不可处理实体)?