首页 > 解决方案 > Joi - 同一对象的参考值

问题描述

我需要引用前一个属性 ( propertyValue) 来获取另一个属性 ( ) 的最大值loan。目前我已经尝试过:

const products = joi.object().keys({
  propertyValue: joi
    .number()
    .min(40000)
    .required(),
  loan: joi
    .number()
    .min(1)
    .max(joi.ref('propertyValue') - 1)
});

但我收到以下错误:Error: limit must be a number or reference

和:

joi.object().keys({
  propertyValue: joi
    .number()
    .min(40000)
    .required(),
  loan: joi
    .number()
    .min(1)
    .max(joi.template('{propertyValue - 1}'))
    .required(),
})

这给出了错误:Not a valid joi Schema

有没有办法可以做到这一点?

谢谢

标签: javascriptnode.jsjoi

解决方案


尝试使用调整选项

Joi.object({
  propertyValue: Joi
    .number()
    .min(40000)
    .required(),
  loan: Joi
    .number()
    .min(1)
    .max(Joi.ref('propertyValue', {
      adjust: value => {
        return value - 1;
      }
    }))
    .required()
})

堆栈闪电战


推荐阅读