使用 hapijs 查询数组中的多个值

Multiple values from array in query with hapijs

我想要这样的有效查询countries=fr,be

我试过这个: countries: Joi.string().valid(['fr','be'])

但这只允许有 countries=frcountries=be,而不是多个逗号分隔值。我怎样才能做到这一点?

您可以像这样使用 regex

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 值。