自定义对象验证在 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
类没有验证,因此可以将主体转换为它,但没有什么可以验证的,所以是的,没有错误。您可以使用forbidNonWhitelisted
和forbidUnknownValues
等几个选项来使其更严格,但正如预期的那样。在GeoPint
类中添加一些class-validator
装饰器,您会看到它开始验证数据。添加forbidNonWhitelisted
,您会看到它拒绝未知属性。
【讨论】:
是的,我的错...在将验证装饰器添加到 GeoPoint 类后,它工作正常...。谢谢!以上是关于自定义对象验证在 Nestjs DTO 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章