Несколько значений из массива в запросе с hapijs - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу иметь правильный запрос, подобный этому countries=fr,be

Я пробовал это: countries: Joi.string().valid(['fr','be'])

Но это позволяет иметь только countries=fr или countries=be, но не несколькозначения, разделенные запятыми.Как мне этого добиться?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете использовать регулярное выражение примерно так:

var list = ['fr', 'be']; // your counrty codes
var joinedList = '(' + list.join('|') + ')'; // prepare RegExp cases
var regex = new RegExp('^' + joinedList + '(,' + joinedList + ')*$') // the thing in itself

Тогда:

countries: Joi.string().regex(regex).required()

Это будет соответствовать любому коду страны в list, отдельно или всписок через запятую.Я добавил required(), поскольку я считаю, что valid() неявно делает поле обязательным, если вы не разрешите значение undefined.

...