nestjs 如何进行部分参数验证。

根据 nest.js 官方文档,利用 class-validatorpipe 实现了请求参数验证,
但是目前只能是根据实体定义时定义的规则进行完整验证,即实体里有哪些验证规则,则每次必须完整满足。
实际上更多需求是,添加时(必须)检查所有规则,修改时只针对请求参数做验证(例如只修改某一个字段,请求参数为该字段,则只针对该字段进行校验。),删除时则不用任何校验。

查阅一些文章、资料发现了一些有用的信息: class-validator 自带的 Skipping missing properties ,以及 typeormEntity Listeners and Subscribers

但是水平有限,不知道怎么实现,所以求助社区大神们。

大佬们求帮助啊!!

阅读 8.8k
3 个回答
新手上路,请多包涵

我最后用了 class-validate 的 isOptional

最好的方式是先定义一个baseDto,包含所有的字段,并添加校验规则。然后针对新增接口的addDTo和修改接口的updateDto都继承baseDto,并根据自己的需要重写某些字段的校验规则。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题