如何通过Joi验证实现适当的参考逻辑?

问题描述

我正在尝试创建一个简单的架构,该架构将检查以确保正确输入数字范围。逻辑是,开始必须小于 结束,并且结束必须大于 开始

这是我的模式;

const start = Joi.number().less(Joi.ref('end'))
const end = Joi.number().greater(Joi.ref('start'))
//age Range object
const ageRange = Joi.object().keys({
  start: start,end: end,})

代码编译时出现的错误Error: item added into group end created a dependencies error

我尝试更改逻辑,但是不确定其他哪种结构会起作用。我明白这可能是参考逻辑的问题,因此对此的任何其他建议将不胜感激。

解决方法

开始必须小于结束,并且结束必须大于开始我认为您可以只检查其中之一,另一个自动为真。不确定数学中的术语是什么。

类似的东西应该起作用

const schema = {
    start: Joi.date().iso().required(),end : Joi.date().iso().greater(Joi.ref('start')).required()
  };
let ageRange =  Joi.object().keys(schema);