【问题标题】:How can I implement proper reference logic with Joi validation?如何使用 Joi 验证实现正确的引用逻辑?
【发布时间】:2021-02-11 07:59:39
【问题描述】:

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

这是我的架构;

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

我已尝试更改逻辑,但不确定其他结构会起作用。我知道这可能是参考逻辑的问题,因此非常感谢任何替代建议。

【问题讨论】:

  • start 必须小于 end,end 必须大于 start 你可以只检查其中一个。没有?
  • 我也认为 Joi.ref() 在您在同一架构中引用时有效

标签: javascript node.js express joi


【解决方案1】:

start 必须小于 end,end 必须大于 start 我想你可以只检查其中一个,另一个是自动的。不知道数学中的术语是什么。

这样的东西应该可以工作

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

【讨论】:

  • 是的。我只需要比较结束值即可开始。谢谢你。
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2017-01-29
相关资源
最近更新 更多