JSON проверка значения - PullRequest
0 голосов
/ 07 мая 2020

Я использую схему JSON для установки тела для почтового запроса в node.js приложении

let ProductSchema = new Schema({
    sku: {type: String, required: true},
    ean: {type: Number, required: true},
    mpn: {type: Number, required: true},
});

для проверки JSON тела для запроса POST, но проблема, которая у меня есть, заключается только в требуется одно из трех значений, поэтому, если пользователь в запросе POST заполняет JSON как

{
    "sku": "test",
}

без ean или mpn, оно все равно должно быть действительным.

Я не уверен с чего начать, так есть ли у кого-нибудь подсказка, где искать?

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Вы должны использовать замечательный модуль: joi

Для разрешения только одного из трех параметров, т.е. должен присутствовать ровно один из параметров. Допустим, у вас есть пять полей в вашей схеме, и вы хотите, чтобы одно из (field1, field2, field3) присутствовало.

Joi.object({
  field1: Joi.string(),
  field2: Joi.string(),
  field3: Joi.string(),
  field4: Joi.string(),
  field5: Joi.string(),
}).xor('field1', 'field2', 'field3')

Теперь будет разрешено только одно из этих трех полей.

См .: Проверка схемы с помощью Joi

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