问题标签 [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.
typescript - 请求正文中的布尔参数在 NestJS api 中始终为真
在我的 API 中考虑这个端点:
设置为parameters
参数的请求正文包含一个称为布尔类型的属性,它在参数 DTOlaserMode
上像这样进行验证:
现在奇怪的是,当从 PostMan 发送请求时:
laserMode = false
laserMode = cool
(布尔值以外的字符串)
我注意到它laserMode
总是设置为 true,这是在验证过程完成之后,因为当我console.log类的构造函数中的 Parameter 实例时
没看到楼盘!
注意:当
laserMode
从请求中删除时,返回预期的验证错误(应该定义,应该是布尔值)。
- 检查拼写错误
- 使用 Vue 应用程序而不是邮递员时会注意到相同的结果。所以!!?
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
?
javascript - 有条件地设置允许的 IsIn 装饰器可能性?
我有 2 个字段:field
并subField
定义为:
目前,subField
可以是'a'
或'b'
或bb
。这不是我想要的。if field == 'A'
, thensubField
只能是'a'
, if field == 'B'
, subField 只能是'b'
or 'bb'
。看来这个验证需要是异步的,因为我需要等待field
被分配一个值。如何进行此异步验证?
nestjs - NestJS:如何在@Query 对象中转换数组
我是 NestJS 的新手,我正在尝试从查询参数中填充过滤器 DTO。
这是我所拥有的:
询问:
本地主机:3000/api/checklists?stations=114630,114666,114667,114668
控制器
DTO
有了这个,类验证器不会抱怨,但是,在过滤器对象中,站实际上不是一个数组,而是一个字符串。
我想将其转换为验证管道中的数组。我怎样才能做到这一点?
nestjs - 类转换器和类验证器:在类验证器错误中显示 @exposed 名称
我有一个 NestJS 项目,其中我同时使用类验证器和类转换器,并且我需要在类验证器引发错误之前执行类转换器。
给定以下课程:
我需要使用属性名称而不是属性 profileName 来公开错误,其他属性也是如此。
有什么直接的想法来管理这个吗?不能要求前端向我发送具有不同名称的属性,这就是我需要调整它们的原因。
我想通过管道这样做,但在错误爆发之前无法使用它。
当前错误格式:
所需的错误格式:
class-validator - 为什么我们在使用 class-transformer 时不应该使用 enableImplicitConversion?
类转换器文档说:
隐式类型转换
注意如果您将类验证器与类转换器一起使用,您可能不想启用此功能。
为什么不?
我做了一些测试,没有发现任何问题。
实际上是相反的:使用class-transformer(withenableImplicitConversion=true
和reflect-metadata)与class-validator结合似乎是一个完美的选择,并且NestJS开箱即用地支持它
arrays - 类验证器不验证数组
我无法让类验证器工作。好像我没有使用它:一切正常,就好像我没有使用类验证器一样。当发送一个格式不正确的请求时,我没有任何验证错误,尽管我应该这样做。
我的 DTO:
我的控制器:
我的引导程序:
我找不到问题所在。我错过了什么?
node.js - 如何在类验证器和类转换器中验证和转换数字数组或数字数组
我有需要验证和转换数字数组或数字数组数组的值联合类型的情况。我试过在下面使用鉴别器,但它对非对象类型没有意义。坐标应该能够包含Array<number> | Array<Array<number>>
.
知道如何在类验证器和类转换器中实现这一点吗?
javascript - unt 测试 jest 自定义验证类(类验证器)及其消息?
我正在使用打字稿进行 nodeJs 项目。在这里,我使用 class-validator 来验证输入并使用 jest 来运行单元测试。
但是,我不确定如何测试自定义错误消息。我看到了很多使用函数,但几乎没有用于类。
这是错误消息
这是我的代码
unit_test.ts
日期条件检查.ts
如果您需要任何额外信息,请告诉我。感谢您的所有帮助!