如何在Hapi中验证支持逗号分隔组合的method查询参数
用Joi校验逗号分隔的method查询参数
你需要校验的method参数支持单个合法值或多个合法值的逗号组合,直接用Joi的split()和each()方法就能实现,替换你原来的单个值校验代码即可:
config = { validate: { query: { method: Joi.string() .split(',') .each(Joi.string().valid('sum', 'sub', 'mul', 'div')) // 可选:如果要禁止重复值,加上这行 .unique() } } }
代码说明
.split(','):把传入的字符串按逗号拆分成数组,不管是单个值(比如sum)还是多值组合(比如sum,mul)都能适配.each(...):对拆分后的每个元素做枚举值校验,确保每个值都在允许的列表里.unique():可选配置,用来防止传入重复的method值(比如sum,sum),不需要的话可以删掉
校验效果
- 合法场景:
method=sum、method=sum,mul、method=div,sub - 非法场景:
method=per(单个非法值)、method=sum,per(混有非法值)、method=sum,sum(加了unique时非法)
内容的提问来源于stack exchange,提问作者Madhu
相关产品推荐
相关产品推荐

