Joi альтернативные группы ключей в схеме - PullRequest
0 голосов
/ 17 октября 2018

В приведенной ниже схеме я хочу требовать, чтобы он имел либо широту / долготу, либо северную / восточную клавиши.Как сделать это, а также добавить другие дополнительные ключи в схему после них?Я посмотрел на xor , но кажется, что он поддерживает только отдельные клавиши, а не наборы клавиш.

const schema = Joi.alternatives().try({
    Northing: Joi.string().required(),
    Easting: Joi.string().required(),
}, {
    Lat: Joi.string().required(),
    Lon: Joi.string().required(),
});

1 Ответ

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

Я нашел решение:

const schema = Joi.object().keys({
  Northing: Joi.string(),
  Easting: Joi.string(),
  Lat: Joi.string().when('Northing', {
    is: Joi.string().required(),
    then: Joi.string(),
  }),
  Lon: Joi.string().when('Easting', {
    is: Joi.string().required(),
    then: Joi.string(),
  }),
}).xor('Northing', 'Lat').xor('Easting', 'Lon');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...