首页 > 解决方案 > 在 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'))

标签: javascriptjoi

解决方案


您可以使用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


推荐阅读