如何使用带有 Joi.ref() 的数学运算来验证使用 Joi 的对象?

Alo*_*hor 2 javascript validation json object joi

我想使用 Joi 来验证对象,其中使用 Joi.ref() 和乘法运算。

var object = {
    a: 5,
    b: 6
}

// this is wrong as Joi.ref('a')*2 is now allowed in max()
var schema = Joi.object({
    a: Joi.number().integer(),
    b: Joi.number().integer().min(1).max(Joi.ref('a')*2)
})
Run Code Online (Sandbox Code Playgroud)

Joi.ref('a')*2不被允许。那么我怎样才能验证对象b<=2*a呢?

Use*_*863 5

使用adjust选项

var schema = Joi.object({
    a: Joi.number().integer(),
    b: Joi.number().integer().min(1).max(Joi.ref('a', {
      adjust: (value) => value * 2
    }))
})
Run Code Online (Sandbox Code Playgroud)

闪电战