在 Joi 模式中添加 OR 以进行时间检查

问题描述

我有一个检查

endTime: Joi.date().iso().min(Joi.ref('startTime'))

我需要添加什么:endTime:

Joi.date().iso().min(Joi.ref('startTime')) or Joi.date().iso().equal(Joi.ref('startTime'))

解决方法

您可以使用 Joi.alternatives 来测试多个验证:

Joi.object({
  startTime: Joi.date().iso(),endTime: Joi.alternatives().try(
    Joi.date().iso().min(Joi.ref('startTime')),Joi.date().iso().equal(Joi.ref('startTime')),)
})

无论如何,我认为您不需要使用 .equal

使用 .min 表示您的 endTime 必须大于或等于 startTime