如何在表达式验证器中比较一个数组的整数元素?

我有一个表达式验证器,用于比较一个2个长度的整型数组,它看起来像这样。

exports.createItem = 
    check("times").exists()
        .withMessage('MISSING').isArray({min: 2, max: 2})
        .withMessage('err'),
    check("times.*").not()
        .isString().isInt(),
    (req,res, next) =>
    {
        validationResult(req,res,next);
    }
];

我想检查数组的第二个整数元素是否比第一个大。我怎样才能做到这一点?

解决方案:

你可以使用 自定义验证器 为了能够访问数组元素

check("times").exists().withMessage('MISSING')
    .isArray().withMessage('times is not array')
    .custom((value) => {
        if (!value.every(Number.isInteger)) throw new Error('Array does not contain Integers'); // check that contains Integers
        if (value.length !== 2) throw new Error('Not valid Array Length'); // check length
        if (value[0] > value[1]) throw new Error('First element array is bigger than second'); 
        return true;
    })

对了 minmax 的选择 isArray() 方法对我无效

给TA打赏
共{{data.count}}人
人已打赏
未分类

LINK:致命错误 LNK1104:无法打开文件'OLDNAMES.lib'。

2022-9-9 4:57:18

未分类

Webpack。如何在客户端(浏览器)注入process.env运行时,使构建独立于环境。

2022-9-9 4:57:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索