问题标签 [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 - 打字稿将值传递给日期验证装饰器?
我正在尝试验证这样的日期(购买日期和收货日期都是类属性):
但是我收到以下错误:
src/main/ts/domain/PurchaseOrder.ts(20,16): 错误 TS1005: ',' 预期。src/main/ts/domain/PurchaseOrder.ts(20,12):错误 TS2304:找不到名称“日期”。
购买日期注释约束应该如何通过?注释来自类验证器库。
javascript - 使用类验证器中的@MinDate 会导致 TypeError:无法读取未定义的属性“getTime”?
我有这样的课:
我创建一个这样的订单实例:
并验证:
这会导致以下错误:
完整的测试代码如下所示:
想法?
typescript - 是否可以在运行时传递 Typescript 装饰器对象值?
我有一个用@MinDate 约束装饰的类,如下所示:
当试图验证一个Order
有效的实例时,验证错误就会出现。我的问题是this.purchaseDate
作为参数传递给@MinDate()
装饰器是否有可能/有效。
换句话说,打字稿装饰器可以从对象接收运行时值,还是这些值必须在编译时可用?例如:
node.js - 通过 @IsInt() 验证 application/x-www-form-urlencoded 请求类型
当我浏览Pipes文档时,我注意到我无法正确@IsInt()
验证application/x-www-form-urlencoded请求,因为我传递的所有值都作为字符串值接收。
我的 DTO 看起来像
验证管道包含下一个代码
- value - 请求正文值
- 对象- 通过类转换器值转换
- 错误- 错误对象
如您所见,错误告诉我们年龄必须是整数。
如何通过application/x-www-form-urlencoded请求的@IsInt()
验证?
库版本:
- @nestjs/common@4.6.4
- 类变压器@0.1.8
- 类验证器@0.8.1
PS:我还创建了一个存储库,您可以在其中运行应用程序来测试错误。所需的分支how-to-pass-int-validation
UPD:从接受的答案进行更改后,我遇到了将错误的解析数据存储到存储中的问题。记录示例
是否有可能得到很好的解析createCatDto
或者我需要做些什么来用正确的类型结构保存它?
typescript - 一种更清洁的方式,如何重构异步调用
我有以下端点
我想知道是否有一种“更清洁”的方式来做同样的事情。即如何使用解构、速记等来重构它?
typescript - 使用带有类验证器的验证管道
我试图弄清楚如何在 API 调用中正确使用我的验证管道和类验证器。
我有一个带有类验证器装饰器的 DTO,其行为符合预期。但是,我想利用“skipMissingProperties”来忽略对不存在的东西的验证(例如屏幕截图中的“名称”)。
我的意图是能够拥有一个使用许多装饰器的简单 DTO,并跳过对那些不存在的装饰器的验证。
不幸的是,我对 skipMissingProperties 的使用似乎不正确,因为提供此选项仍然会从 DTO 中引发验证错误。
我如何使用验证管道 skipMissingProperties 选项以及类验证器装饰器来处理那些确实传入的装饰器?
使用以下代码,如果我使用其他参数发出更新请求,但从正文中排除“名称”,则类验证器会从 DTO 级别引发错误。
API 控制器端点:
更新视图DTO:
typescript - NestJs 在自定义验证器(类验证器)中获取请求实例或执行上下文
是否可以在 nestJs (class-validator => custom validator) 中注入执行上下文或访问当前请求?
javascript - 如何在类验证器中排除/忽略道具
我有一个自定义类,其中一些属性通过同一类中的方法进行验证。然后我将错误设置为一个字段。但是当我在 json 中返回这些错误时,它会在该错误字段上给我一个循环错误。
它给了我这个错误: UserInputValidator { firstName: 'a', lastName: 'a', err: [Circular] },
node.js - 在 nest.js 控制器中使用类验证器验证嵌套对象
我想在 nest.js 控制器中使用类验证器来验证正文有效负载。我的currency.dto.ts
文件是这样的:
在我的nest.js 控制器中,我像这样使用它。
我的验证管道类是这样的:
此验证管道适用于除嵌套对象之外的所有对象。知道我在这里做错了什么吗?我的身体有效载荷是这样的: