arrays - 如何在快速验证器中比较数组的整数元素?
问题描述
我有一个 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;
})
顺便说一句,该方法min
的max
选项对isArray()
我不起作用
推荐阅读
- node.js - webpack 和 react - 未定义 ReactDom
- android - Flutter 应用程序在 Android 平台上的 firebase 电话号码身份验证时崩溃
- raspberry-pi - 如何将程序设置为在树莓派上自动运行?
- qt - Qt类型QColor的序列化格式是什么?
- internet-explorer - IE如何找到注册的activex控件
- javascript - JQuery Element Hieght 与现实不一样
- java - 这个 GUI 类有什么问题?
- c# - 如何在“天蓝色函数”上模拟 HttpRequest
- excel - 是否可以使用命名范围为 Excel 中的 Solver 设置大量约束?
- html - 仅使用 flexbox 固定页眉、可滚动内容和固定页脚布局