Как подать заявку .OR в валидации - PullRequest
0 голосов
/ 29 октября 2018

Ну, у меня есть следующий объект Joi, я пытаюсь использовать метод Or, как вы видите, у меня есть два объекта, содержит телефон, который я хотел использовать метод Or, но у меня произошел сбой

body: Joi.object().keys({
            member: Joi.object().required().keys({
                id: Joi.string().required(),
                phone: Joi.string().max(30),
                email: Joi.string().required().max(255)
            }),
            billingAddress: Joi.object().keys({
                line1: Joi.string().required(),
                line2: Joi.string().max(60),
                city: Joi.string().required().max(50),
                state: Jio.required(),
                postalCode: Joi.string().required(),
                phone: Joi.string().max(15)
            })
}).or('member.phone','billingAddress.phone')

Что я пытаюсь сделать, так это то, что мне нужен телефон: member.phone или billingAddress.phone хотя бы один из них существует приведенный выше код не работает Что мне делать?

1 Ответ

0 голосов
/ 29 октября 2018

Функциональность, которую вы пытаетесь использовать, только недавно вошла в версию 14.0.0 Joi, поэтому первым делом убедитесь, что вам требуется как минимум v14 версии Joi.

Вложенные пути в object.or / nand / и / xor / с / без ()

Вложенные пути для этих функций теперь поддерживаются. Я считаю это серьезным изменением, поскольку вы могли (но на самом деле не должны) использовать пунктирные пути в этих проверках, потому что вы хотели проверить точечные свойства. Если это ваш случай, в настоящее время нет пути миграции, но мы можем обсудить это в проблеме.

Для более старых версий потребуется либо грязная комбинация .when() или .alternatives(), либо пользовательский валидатор, либо логика, написанная вручную, с несколькими схемами.

...