我对用于验证数组的 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 之间的值。