【发布时间】:2021-12-28 14:42:13
【问题描述】:
我正在使用 express-validator 来验证对我的 express 应用程序的请求,并且我有一个端点接收一个对象,其中一个属性是一组对象。如下所示。
{
"propA": "",
"propB": "",
"items": [
{
"enabled": true,
"name": "",
"icon": "",
}
]
}
我希望仅当 enabled 属性设置为 true 时才能将名称和图标设置为 required。
我试图做这样的事情,但我没有按预期工作。
body("items").isArray().withMessage("Items format is invalid"),
body("items.*.enabled").isBoolean(),
body("items.*.name").if(body("items.*.enabled")).notEmpty().bail(),
body("items.*.icon").if(body("items.*.enabled")).notEmpty().bail()
【问题讨论】:
-
不,没有用。可能是因为我在数组中使用属性。我认为 express-validator 是在整体检查它,而不是在我使用 oneOf 时查看每个对象。
-
也许这里的自定义验证可能是唯一的选择?通过
custom. -
是的,这是唯一的选择。项目维护人员表示,在当前版本中是不可能的。计划在版本 7.x 上对此进行改进。
标签: node.js express express-validator