问题标签 [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 投票
3 回答
11663 浏览

typescript - 请求正文中的布尔参数在 NestJS api 中始终为真

在我的 API 中考虑这个端点:

设置为parameters参数的请求正文包含一个称为布尔类型的属性,它在参数 DTOlaserMode上像这样进行验证:

现在奇怪的是,当从 PostMan 发送请求时:

  1. laserMode = false
  2. laserMode = cool(布尔值以外的字符串)

我注意到它laserMode总是设置为 true,这是在验证过程完成之后,因为当我console.log类的构造函数中的 Parameter 实例时

没看到楼盘!

注意:当laserMode从请求中删除时,返回预期的验证错误(应该定义,应该是布尔值)。

  • 检查拼写错误
  • 使用 Vue 应用程序而不是邮递员时会注意到相同的结果。所以!!?
0 投票
1 回答
1500 浏览

typescript - 巢穴.js。在将在服务中使用之前转换(序列化)客户端数据的位置

我应该在哪里转换来自客户的收入数据以使用 service.ts 文件中的转换值。

例如,我从客户端获取 JSON 数据,如下所示

我有一个register-client.dto文件:

我有一个client.controller.ts文件:

我有一个client.service.ts文件:

create我可以在服务文件的内部方法中这样做: const clearPhone = phone.replace(/[^0-9]/gim, '').

但我希望该phone字段自动转换和验证。@Transform也许我可以使用包中的装饰器在 dTO 文件中执行此操作class-transform

0 投票
0 回答
584 浏览

javascript - 有条件地设置允许的 IsIn 装饰器可能性?

我有 2 个字段:fieldsubField定义为:

目前,subField可以是'a''b'bb。这不是我想要的。if field == 'A', thensubField只能是'a', if field == 'B', subField 只能是'b'or 'bb'。看来这个验证需要是异步的,因为我需要等待field被分配一个值。如何进行此异步验证?

0 投票
2 回答
14229 浏览

nestjs - NestJS:如何在@Query 对象中转换数组

我是 NestJS 的新手,我正在尝试从查询参数中填充过滤器 DTO。

这是我所拥有的:

询问:

本地主机:3000/api/checklists?stations=114630,114666,114667,114668

控制器

DTO

有了这个,类验证器不会抱怨,但是,在过滤器对象中,站实际上不是一个数组,而是一个字符串。

我想将其转换为验证管道中的数组。我怎样才能做到这一点?

0 投票
0 回答
1062 浏览

nestjs - 类转换器和类验证器:在类验证器错误中显示 @exposed 名称

我有一个 NestJS 项目,其中我同时使用类验证器和类转换器,并且我需要在类验证器引发错误之前执行类转换器。

给定以下课程:

我需要使用属性名称而不是属性 profileName 来公开错误,其他属性也是如此。

有什么直接的想法来管理这个吗?不能要求前端向我发送具有不同名称的属性,这就是我需要调整它们的原因。

我想通过管道这样做,但在错误爆发之前无法使用它。

当前错误格式:

所需的错误格式:

0 投票
1 回答
1671 浏览

class-validator - 为什么我们在使用 class-transformer 时不应该使用 enableImplicitConversion?

转换器文档说:

隐式类型转换
注意如果您将类验证器与类转换器一起使用,您可能不想启用此功能。

为什么不?

我做了一些测试,没有发现任何问题。
实际上是相反的:使用class-transformer(withenableImplicitConversion=truereflect-metadata)与class-validator结合似乎是一个完美的选择,并且NestJS开箱即用地支持它

0 投票
2 回答
5846 浏览

arrays - 类验证器不验证数组

我无法让类验证器工作。好像我没有使用它:一切正常,就好像我没有使用类验证器一样。当发送一个格式不正确的请求时,我没有任何验证错误,尽管我应该这样做。

我的 DTO:

我的控制器:

我的引导程序:

我找不到问题所在。我错过了什么?

0 投票
0 回答
517 浏览

node.js - 如何在类验证器和类转换器中验证和转换数字数组或数字数组

我有需要验证和转换数字数组或数字数组数组的值联合类型的情况。我试过在下面使用鉴别器,但它对非对象类型没有意义。坐标应该能够包含Array<number> | Array<Array<number>>.

知道如何在类验证器和类转换器中实现这一点吗?

0 投票
1 回答
2528 浏览

javascript - unt 测试 jest 自定义验证类(类验证器)及其消息?

我正在使用打字稿进行 nodeJs 项目。在这里,我使用 class-validator 来验证输入并使用 jest 来运行单元测试。

但是,我不确定如何测试自定义错误消息。我看到了很多使用函数,但几乎没有用于类。

这是错误消息

这是我的代码

unit_test.ts

日期条件检查.ts

如果您需要任何额外信息,请告诉我。感谢您的所有帮助!

0 投票
1 回答
1572 浏览

typescript - 我可以将数字变量与“类验证器”进行比较吗?

你好!我有一个关于类验证器的问题

我的客户将请求多个数字,我需要相互比较值。

我想要如下代码。

我尝试在@Min() 验证器中输入变量,如下所示

我得到了TS7017 错误

有没有完美的方法来处理这个?

我知道有如下简单的方法,但我希望有一些方法可以使用类验证器。


12345678910