NodeJs express-validator - 验证嵌套对象

问题描述

我使用 express-validator(6.x) 版本来验证输入请求参数。

我有一个地址嵌套对象,所以这个字段是可选的,但如果有地址键,其他嵌套对象是必需的。

样本输入

const details = {
  name: "abcd",address: {
    area: "test1",city: {
      code: "123",name: "test"
    },state: {
      code: "123",country: {
      code: "123",name: "test"
    } 
  }
}

const validate = [
  body('name').not().isEmpty().isString(),body('address.area').optional().isString(),body('address.city.name').optional().isString(),body('address.city.code').optional().isString(),body('address.state.name').optional().isString(),body('address.state.code').optional().isString(),body('address.country.code').optional().isString(),body('address.country.name').optional().isString(),]

router.route('/:userId')
  .put(update,function(req,res){
    //code.... 
  })

在这里,我尝试使用自定义密钥但不起作用。

样本输入#1(有效)

const details = {
  name: "abcd"
}

样本输入#2:

const details = {
  name: "abcd",address: {}
}

以上输入无效,应该包含所有地址嵌套对象,如区域、州、国家...

最好的方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)