为什么Express Validator不允许在可选字段中使用空值?

编程入门 行业动态 更新时间:2024-10-07 10:15:13

为什么Express Validator<a href=https://www.elefans.com/category/jswz/34/1771195.html style=不允许在可选字段中使用空值?"/>

为什么Express Validator不允许在可选字段中使用空值?

我正在使用express-validator来验证表单,但是许多字段是可选的。我已经在路线上配置了验证器,例如:

const ExpValidate = require('express-validator');
router.post('/api/posthandler', 
[ ExpValidate.body("TopicID").optional({nullable: true, checkFalsy: true}).trim().isInt(), ]
async function(req, res) {
    const errors = ExpValidate.validationResult(req);
    if (!errors.isEmpty()) {
        return res.status(422).json({ errors: errors.array() });
    }
    else {
    // Handle form here

}

[使用TopicID: null提交表单时,出现错误提示:

{
    "errors": [
        {
            "value": "null",
            "msg": "Invalid value",
            "param": "TopicID",
            "location": "body"
        }
    ]
}

即使从{nullable: true, checkFalsy: true}方法中删除了optional()选项,我也会遇到相同的错误。

[如果我只执行ExpValidate.body("TopicID").optional(),就不会出现任何错误,但这使验证器无法检查是否提供了值isInt()

如果我根本不提交TopicID,那么我也不会收到任何错误。

我的配置有问题吗?

回答如下:

经过大量测试并且与docs相反,结果证明您无法通过TopicID: null,但可以通过TopicID: "",它将被视为可选。

可能是一个bug,不知道。

更多推荐

为什么Express Validator不允许在可选字段中使用空值?

本文发布于:2024-05-07 21:29:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757334.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不允许   可选   字段   Express   Validator

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!