首页 > 解决方案 > Express validator-validdate 对象数组作为请求正文

问题描述

我正在尝试使用通配符验证对象数组。req.body 将只是一个对象数组。

[{id:1},
  {id:2}
]

如果是这种格式

{
  array: [{id:1}]
}

通配符将是 array.*.id;

我在这里做错了什么。我在 express-validator repo 中查看了 github 问题,并尝试遵循此https://github.com/express-validator/express-validator/issues/67#issuecomment-410874697

const app = require("express")();
const {
    validationResult,
    body
} = require('express-validator');

app.post("/post",
[body().not().isArray().withMessage("success"),
body("*.id").not().isEmpty().withMessage("yeaaaa")],
(req,res,next)=>{
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
        return res.status(422).json({ errors: errors.array() });
    }
    res.send("Passed validation")
})

app.listen(3000,()=>console.log("running on express !!!"))

标签: wildcardexpress-validator

解决方案


推荐阅读