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

typescript - NestJS:管道未应用于绑定的主体参数

我正在尝试找到一种体面的方法来为同一对象以不同的方式验证架构。这就是我熟悉来自class-validator的 的方式。validationOption

根据 NestJS Body 参数文档,它指出

还将管道应用于绑定的主体参数。

我有一个具有状态属性的事件模型。在创建事件(POST - /events)时,状态是可选的,但在更新状态时(PATCH- /events/:id/status),它是强制性的。

当我对状态提出更新请求时,我提供@Bodywith'status'作为参数和ValidationPipe作为管道选项。

但是使用此代码,它不会根据提到的组验证状态字段。任何人都知道我做错了什么。任何帮助将不胜感激。

0 投票
1 回答
3004 浏览

typescript - typescript - 类验证器 - 基于不同类型进行验证

我正在使用 TypeORM,我想根据其他字段值提供不同的字段。所以解释一下,这是我的 DTO 模型的外观:

这里的问题是我有这个字段: modelCreate中的验证,并且该字段是一个对象,可以有多个属性,并且在db中看起来像这样:

或者看起来像这样:

这取决于modelCreate的类型属性,因为如果类型是'TIME',我想对此进行验证:

如果类型是'NUMBERS',我想有这样的验证

所以问题是我将如何根据类验证器中的类型字段值在验证字段中调整不同的类,这甚至可能吗?

0 投票
2 回答
807 浏览

typescript - 如何使用类验证器装饰器比较 graphql 类型的输入类型中的字段

我有这个示例输入类型:

有没有办法比较这个例子中的toAge和字段,使用来自验证器的装饰器,比如?fromAgeclass-validator

0 投票
1 回答
370 浏览

node.js - 在节点 js 中使用类验证器验证数组对象

如果它为空,我想验证酒精 ID 和酒精名称。这是我的格式:

0 投票
1 回答
2651 浏览

graphql - 是否支持在 NestJS 和 GraphQL 中使用类验证器对可选参数进行验证?

我有这个input用于更新块。我希望用户可以更新名称或内容或两者。现在的问题是,如果我只传递名称 GrapQL 会抛出一个错误Variable \"$updateBlockInput\" got invalid value { name: \"Updated again\" }; Field content of required type String! was not provided.,例如 varsa。

我究竟做错了什么?


更新块.input.ts

块解析器.ts

突变

变量

0 投票
2 回答
1701 浏览

typescript - 验证数字精度的“真实”浮点字段

我想验证坐标。这些将存储为Postgres 文档real中的数据列

真正的 4 字节可变精度,不精确的 6 位十进制数字精度

我从以下开始

并想知道如何检查这些浮点数的精度。它必须具有 6 位精度。

提前致谢

0 投票
1 回答
900 浏览

typescript - 尽管要求应该通过,但数字参数验证失败

我想通过坐标获取位置。我从一个简单的 DTO 开始

和这个 API 端点

为了测试这个端点,我调用了这个 url

本地主机:3000/locations/0/0

不幸的是我得到了以下回复

有人知道如何解决这个问题吗?我希望它会通过。

似乎 url 参数被认为是字符串,但我怎样才能将它们解析为数字呢?

0 投票
1 回答
2030 浏览

typescript - 将变量从配置文件传递给装饰器

我想用 NestJs、TypeORM 和类验证器创建一个 REST API。我的数据库实体有一个描述字段,当前最大长度为 3000。使用 TypeORM 的代码是

创建新实体时,我想使用类验证器验证最大长度的传入请求。可能是

更新该描述字段时,我还必须检查其他 DTO 中的最大长度。我有一个服务类,其中包含我所有的 API 配置字段。假设这个服务类也可以提供最大长度,有没有办法可以将变量传递给装饰器?

否则,将长度从 3000 更改为 2000 时,我必须更改多个文件。

0 投票
4 回答
2598 浏览

class-validator - 如何允许空,但禁止未定义?

例如,对于数据库行,我们可能需要不能未定义的可为空属性:

所以numNullable可以是一个数字或null- 但它绝不能是undefined

我们如何在类验证器中表达这一点?

  • 添加@Optional()不起作用,因为这也将允许undefined
  • 我对自定义验证器也没有运气
0 投票
1 回答
1019 浏览

typescript - 扩展现有验证器并仅设置一些选项

我的数据库列是双精度类型(来自Postgres 文档

双精度 8 字节可变精度,不精确 15 位小数精度

使用类验证器我想进行精度检查

IsDecimal装饰器在这里可能会有所帮助,所以可以@IsDecimal({ decimal_digits: '15' })做到这一点。我必须将这个装饰器用于多个字段,有没有办法扩展现有的装饰器并传入decimal_digits选项?我认为重新发明轮子没有意义。如果我可以继承验证但将精度设置为小于或等于 15那就太好了。

目前我创建了自己的装饰器

但我不确定这个是否能够处理所有案件。

提前致谢