问题标签 [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.
javascript - 使用类验证器和 nestjs 验证嵌套对象
我正在尝试使用类验证器和 NestJS 验证嵌套对象。我已经尝试使用 class-transform 中的装饰器来跟踪这个线程@Type
,但没有任何运气。这就是我所拥有的:
DTO:
我也在使用内置的 nestjs 验证管道,这是我的引导程序:
它对其他属性工作正常,对象数组是唯一不工作的。
javascript - 不能在具有类验证器的父类的构造函数内使用验证
我想在对象构造函数中使用 validateSync,但我不能将它与继承一起使用。
我有这样的事情:
结果是:
当我调用 Dog 构造函数时,代码会运行 Animal 类的 super() 和 this.validate()。此方法验证 Dog 的实例,并且由于 Animal 没有品种属性,因此代码会抛出上面的错误。
我不知道如何解决这个问题,也许将验证放在构造函数中并不是一个好主意。
是否有解决方法或更好的方法来做到这一点?
node.js - NestJS - 基于一个属性有条件地验证身体
我正在尝试找到一种使用 DTO 验证身体的好方法(使用辉煌class-validator
和class-transformer
图书馆)。它工作得非常好,即使对于嵌套结构,但在我的情况下,我想拥有基于某些条件的 body 属性。
可能有助于理解的示例:
让我们想象一下我的身体应该一直有selectedCategory
。基于该字段,内容可能来自类别 1,其中包含prop1
或来自类别 2,其中包含prop2
.
我不想让他们两个都为 null,我真的希望必须prop1
定义或prop2
基于selectedCategory
.
我认为我可以使用管道,但是如何指定要使用的正确 DTO?
我已经建立了一个“基”类,它包含所有的公共属性和几个从它继承的其他类。
我可以根据 property 手动实例化管道selectedCategory
,这是理想的,但我不知道要传递什么作为管道的第二个参数(元数据)。
谢谢你的帮助。
typescript - 如何在 Nestjs 上使用具有多个 dto 的一条路由?
目前我正在使用 NestJS 来构建 restful api。我有ValidationPipe
问题。它仅适用于控制器方法,不适用于服务方法。
我需要为每个DTO
(管理员UserCreateDTO
、员工、用户)在.StaffCreateDTO
ROLE
route
node.js - 如何在更新mongodb中的现有行时防止nestjs中客户端不需要的对象属性
创建新用户将忽略未指定的对象create-user.dto.ts
但是,当我更新用户时,它会添加不需要的字段,如下所示:
这是来自用户服务的更新操作
这是 user.controller.ts
客户端补丁数据:
将email
正确更新,但该行将有一个新的不需要的属性junk
,其值为junk
node.js - 验证类验证器中的空白空间
我想验证地址字段,它可能包含数字或字符串,但它不应该接受连续的空格
@IsAlphaNUmereic() 地址:字符串;
我想要那个,地址可以是数字或字母......但它不应该接受连续的空格
javascript - 是否可以验证单个路由参数?
假设我有以下路线:
是否可以分别验证两个资源 id ( companyId
, departmentId
)?我试过跟随但它不起作用。
当单个路由中有多个参数时,我有多种情况。我不想为每条路线创建单独的验证类。有没有办法以不同的方式处理这个问题?
javascript - ValidationPipe() 不适用于覆盖 Nestjs/Crud 中的 @Query
我正在尝试验证 get 请求查询中的参数,但由于某种原因,验证管道无法识别查询的元素。
OpenSchedule.dto
当我向http://localhost:3000/schedules?companyId=3&professionalId=1发出获取请求时
我收到意外错误:
javascript - 找不到类验证器的元数据
我正在尝试使用 aValidationPipe
但无论我如何编写代码,在发送请求时都会收到以下警告:No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies
.
我的路线看起来像这样:
我的 DTO 看起来像这样:
我尝试使用ValidationPipe
几种方法,遵循doc,但对我没有任何作用。我知道它不起作用,因为尽管请求得到了响应,但是当查询为空时,不使用我在 DTO 中为 property 编写的默认值,limit
即。50
因此,当limit
查询中提供 no 时,limit
' 的值是未定义的,而它应该是50
(这意味着ValidationPipe
未使用)。
我的package.json
似乎是正确的:
完整package.json
:
为什么我会收到此消息,我该如何使用ValidationPipe
?