我正在尝试找到一种方法来使用Joi检查重叠的时间范围,但是在验证时间范围本身有效之后,我却看不到如何做。
我的时间范围架构允许时间部分仅落在小时上,并且“全天”以0的开头和24的结尾指定。
const Joi = require('joi')
const hour_of_day = Joi.number().integer().min(0).max(24)
const time_range = Joi.object().keys({
start: hour_of_day.required(),
end: hour_of_day.greater(Joi.ref('start')).required()
})
const day_availability = Joi.object().keys({
day_of_week: Joi.string().valid([ 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun' ]).required(),
timeslots: Joi.array().items(time_range).min(1)
})
const test_data = {
day_of_week: 'mon',
timeslots: [
{ start: 0, end: 2 },
{ start: 1, end: 3 }
]
}
Joi.validate(test_data, day_availability)
由于时间段重叠,以上操作应会失败,但是当然没有检查重叠的地方。
我在哪里插入Joi插件?