JOI - форсирование требуется с помощью обязательных ключей - PullRequest
0 голосов
/ 13 мая 2019

У меня есть базовая userSchema, например:

const userSchema = Joi.object().keys({
    firstName: Joi.string(),
    lastName: Joi.string(),
    email: Joi.string().email(),
    username: username,
    password: password,
    devices: Joi.array().items(userDevicesSchema),
    billing: userBillingSchema,
    clients: Joi.array().items(userClientSchema),
    cart: Joi.array().items(userCartSchema),
    orders: Joi.array().items(userOrderScherma),
    isAdmin: Joi.boolean(),
    isActive: Joi.boolean(),
    lang: Joi.string().valid(['cs', 'de', 'en', 'es', 'fr', 'ja']),
    credit: Joi.number(),
    timeZone: Joi.string().timeZone(),
    customization: userCustomizationSchema,
    level: Joi.string().valid(['casual', 'scout', 'explorer', 'integrator']),
    microservicesAccess: Joi.array().items(Joi.string())
}).options({ abortEarly: false, stripUnknown: true });

Теперь я хочу создать userSignupSchema для проверки API регистрации.Мне нужно установить некоторые поля для заполнения.Я попробовал это:

const userSignupSchema = userSchema
        .requiredKeys('firstName', 'lastName', 'email', 'username', 'password', 'lang', 'level', 'timeZone', 'level')
        .forbiddenKeys('devices', 'cart', 'orders', 'isAdmin', 'credit', 'microservicesAccess' );

Но я получаю ошибку: "уровень неизвестного ключа (ей)".Запрещенные ключи работают отлично.У кого-нибудь есть рабочий пример использования requiredKeys?Я не смог найти ни одного ...

1 Ответ

0 голосов
/ 13 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...