我对用于验证数组的 Joi 验证器有疑问
i have a problem with Joi validator for validation an array
let schema=Joi.array().length(2).items(Joi.number().integer().max(23).min(0).required(),Joi.number().integer().max(59).min(0).required())
if (schema.validate(value).error) {
return {
error: text
}
}
嗨,我对 joi 有很大的疑问
我想验证一个长度为 2 的数组,第一个索引是小时,最大值为 23,最小值为 0。第二个索引是分钟,最大值为 59,最小值为 0。
第二条规则很好用,但是当我输入 24 小时或更多小时时,不会 return 错误,我不明白那是什么!!!
对于 arry 的第二个索引,我没有问题,大于 59 小于 0 效果很好
它只是为了第一个索引
我用 string 和 joi return 错误测试第一个索引,但是当我使用 60 或更多数字时,我没有错误!
注意:英语不好的人
您定义架构的方式与元素的顺序无关,这意味着此示例将通过:
[24, 1]
如果您想按顺序定义数组元素,则必须将 .items
替换为 .ordered:
Joi.array().length(2).ordered(
Joi.number().integer().max(23).min(0).required(),
Joi.number().integer().max(59).min(0).required()
)
这样,第一个元素被强制为 0-23 之间的值,第二个元素被强制为 0-59 之间的值。
let schema=Joi.array().length(2).items(Joi.number().integer().max(23).min(0).required(),Joi.number().integer().max(59).min(0).required())
if (schema.validate(value).error) {
return {
error: text
}
}
嗨,我对 joi 有很大的疑问 我想验证一个长度为 2 的数组,第一个索引是小时,最大值为 23,最小值为 0。第二个索引是分钟,最大值为 59,最小值为 0。
第二条规则很好用,但是当我输入 24 小时或更多小时时,不会 return 错误,我不明白那是什么!!! 对于 arry 的第二个索引,我没有问题,大于 59 小于 0 效果很好 它只是为了第一个索引 我用 string 和 joi return 错误测试第一个索引,但是当我使用 60 或更多数字时,我没有错误! 注意:英语不好的人
您定义架构的方式与元素的顺序无关,这意味着此示例将通过:
[24, 1]
如果您想按顺序定义数组元素,则必须将 .items
替换为 .ordered:
Joi.array().length(2).ordered(
Joi.number().integer().max(23).min(0).required(),
Joi.number().integer().max(59).min(0).required()
)
这样,第一个元素被强制为 0-23 之间的值,第二个元素被强制为 0-59 之间的值。