问题标签 [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 回答
1037 浏览

typescript - 打字稿将值传递给日期验证装饰器?

我正在尝试验证这样的日期(购买日期和收货日期都是类属性):

但是我收到以下错误:

src/main/ts/domain/PurchaseOrder.ts(20,16): 错误 TS1005: ',' 预期。src/main/ts/domain/PurchaseOrder.ts(20,12):错误 TS2304:找不到名称“日期”。

购买日期注释约束应该如何通过?注释来自类验证器库。

0 投票
1 回答
3408 浏览

javascript - 使用类验证器中的@MinDate 会导致 TypeError:无法读取未定义的属性“getTime”?

我有这样的课:

我创建一个这样的订单实例:

并验证:

这会导致以下错误:

完整的测试代码如下所示:

想法?

0 投票
2 回答
2704 浏览

typescript - 是否可以在运行时传递 Typescript 装饰器对象值?

我有一个用@MinDate 约束装饰的类,如下所示:

当试图验证一个Order有效的实例时,验证错误就会出现。我的问题是this.purchaseDate作为参数传递给@MinDate()装饰器是否有可能/有效。

换句话说,打字稿装饰器可以从对象接收运行时值,还是这些值必须在编译时可用?例如:

0 投票
1 回答
2693 浏览

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或者我需要做些什么来用正确的类型结构保存它?

0 投票
1 回答
9437 浏览

node.js - nodejs类验证器验证对象数组

我有一组看起来像这样的对象

如何使用class-validator 进行验证,以便 name 字段是必需的,并且每个对象中至少有 2 个字符?

谢谢

0 投票
0 回答
33 浏览

typescript - 一种更清洁的方式,如何重构异步调用

我有以下端点

我想知道是否有一种“更清洁”的方式来做同样的事情。即如何使用解构、速记等来重构它?

0 投票
1 回答
3686 浏览

typescript - 使用带有类验证器的验证管道

我试图弄清楚如何在 API 调用中正确使用我的验证管道和类验证器。

我有一个带有类验证器装饰器的 DTO,其行为符合预期。但是,我想利用“skipMissingProperties”来忽略对不存在的东西的验证(例如屏幕截图中的“名称”)。

我的意图是能够拥有一个使用许多装饰器的简单 DTO,并跳过对那些不存在的装饰器的验证。

不幸的是,我对 skipMissingProperties 的使用似乎不正确,因为提供此选项仍然会从 DTO 中引发验证错误。

我如何使用验证管道 skipMissingProperties 选项以及类验证器装饰器来处理那些确实传入的装饰器?

使用以下代码,如果我使用其他参数发出更新请求,但从正文中排除“名称”,则类验证器会从 DTO 级别引发错误。

控制器屏幕截图上的验证管道

UpdateViewDTO 的装饰器截图

API 控制器端点:

更新视图DTO:

0 投票
0 回答
2020 浏览

typescript - NestJs 在自定义验证器(类验证器)中获取请求实例或执行上下文

是否可以在 nestJs (class-validator => custom validator) 中注入执行上下文或访问当前请求?

0 投票
0 回答
1658 浏览

javascript - 如何在类验证器中排除/忽略道具

我有一个自定义类,其中一些属性通过同一类中的方法进行验证。然后我将错误设置为一个字段。但是当我在 json 中返回这些错误时,它会在该错误字段上给我一个循环错误。

它给了我这个错误: UserInputValidator { firstName: 'a', lastName: 'a', err: [Circular] },

0 投票
2 回答
30262 浏览

node.js - 在 nest.js 控制器中使用类验证器验证嵌套对象

我想在 nest.js 控制器中使用类验证器来验证正文有效负载。我的currency.dto.ts文件是这样的:

在我的nest.js 控制器中,我像这样使用它。

我的验证管道类是这样的:

此验证管道适用于除嵌套对象之外的所有对象。知道我在这里做错了什么吗?我的身体有效载荷是这样的: