как проверить правильность подсхемы joi наилучшим образом - PullRequest
0 голосов
/ 24 ноября 2018

Можно ли проверить схему joi без получения ошибки приведения?то есть у меня есть N поля, но я хочу проверить только 1 поля.

Я пробовал 2 способов, как показано ниже:

const Joi = require("joi");
const _ = require('lodash');
const testSchema = Joi.object().keys({
    name: Joi.string().trim().min(5).max(25).required(),
    allowed: Joi.number().integer().min(0).max(1).default(0)
});

// works smoothly; no error
// const {error, value} = Joi.validate({name :"abc", allowed: 1}, testSchema);

// (Way 1) --> Error: "value" must be a number
// const {error, value} = Joi.validate({name :"abc", allowed: 1}, Joi.reach(testSchema, 'allowed'));

// (Way 2) --> Error: "value" must be a number
const {error, value} = Joi.validate({name :"abc", allowed: 1}, _.find(testSchema._inner.children, {key: 'allowed'}).schema);

console.log(error);

PS Я знаю третий подход к составлению окончательной схемы из более мелких схем, но я не хочу этого делать.

1 Ответ

0 голосов
/ 24 ноября 2018

Вместо объекта значения ключа просто передайте значение ключа, например:

Joi.validate(1, Joi.reach(testSchema, 'allowed'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...