自定义对象验证在 Nestjs DTO 中不起作用

Posted

技术标签:

【中文标题】自定义对象验证在 Nestjs DTO 中不起作用【英文标题】:custom object validation not working in nestjs DTO 【发布时间】:2021-07-30 17:30:16 【问题描述】:

NestJs DTO 无法正确验证对象

DTO 类

控制器类

main.ts 我也尝试添加 whitelist: true 和 forbidNonWhitelisted: true 和 whitelist: true, forbidNonWhitelisted: true 但没有运气

这就是我调用我的 API 的方式,这种类型的响应是可以的

如果我传递了错误的属性,它不会引发错误...这就是问题所在,它应该只有在我传递有效属性的情况下才能工作。

谢谢。

【问题讨论】:

【参考方案1】:

您的GeoPint 类没有验证,因此可以将主体转换为它,但没有什么可以验证的,所以是的,没有错误。您可以使用forbidNonWhitelistedforbidUnknownValues 等几个选项来使其更严格,但正如预期的那样。在GeoPint 类中添加一些class-validator 装饰器,您会看到它开始验证数据。添加forbidNonWhitelisted,您会看到它拒绝未知属性。

【讨论】:

是的,我的错...在将验证装饰器添加到 GeoPoint 类后,它工作正常...。谢谢!

以上是关于自定义对象验证在 Nestjs DTO 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的自定义验证器在 parsley.js 中不起作用?

自定义密码匹配验证器在 angular5 中不起作用

AngularJS 自定义表单验证指令在我的模式中不起作用

自动装配在 Apache Shiro 自定义领域类中不起作用

如何使用 dto 验证 nestjs 中的对象数组

ASP.NET 2.0 自定义客户端验证在 Internet Explorer 中不起作用