使用 hapijs 查询数组中的多个值
Multiple values from array in query with hapijs
我想要这样的有效查询countries=fr,be
我试过这个:
countries: Joi.string().valid(['fr','be'])
但这只允许有 countries=fr
或 countries=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
值。
我想要这样的有效查询countries=fr,be
我试过这个:
countries: Joi.string().valid(['fr','be'])
但这只允许有 countries=fr
或 countries=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
值。