Как проверить объект с двумя максимальными условиями на значение в Джой? - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу проверить этот объект, используя Joi с условиями:
b должно быть больше 2.
b не может превышать a.
b не может превышать 600

// valid object
var object = {
    a: 5,
    b: 3
}

// invalid object because b > a
var object = {
    a: 5,
    b: 6
}

Я пытаюсь построить схему Joi

var schema = Joi.object({
    a: Joi.number().integer(),
    b: Joi.number().integer().min(2).max(Joi.ref('a')).max(600)
})

Эта схема игнорирует условие b<=a, поэтому недопустимый объект также считается допустимым. Какой должна быть правильная схема, чтобы применить все условия?

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Использование less(), которое указывает, что значение должно быть меньше, чем предел или ссылка.

var schema = Joi.object({
    a: Joi.number().integer(),
    b: Joi.number().integer().less(Joi.ref('a')).min(2).max(600)
})

stackblitz

1 голос
/ 06 ноября 2019
var schema = Joi.object({
a: Joi.number().integer(),
b: Joi.number().integer().min(2).max(Joi.ref('a')).less(601)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...