我使用Joi package进行服务器端验证。
我想检查给定字符串是否在给定列表中,或者它是否不在给定列表中。(定义黑名单或白色值列表)
就像" in" 或" notIn" function.how我可以这样做吗?
var schema = Joi.object().keys({
firstname: Joi.string().in(['a','b']),
lastname : Joi.string().notIn(['c','d']),
});
答案 0 :(得分:11)
怎么样:
var schema = Joi.object().keys({
firstname: Joi.string().valid(['a','b']),
lastname : Joi.string().invalid(['c','d']),
});
还有别名:.allow和.only
和.disallow和.not
答案 1 :(得分:5)
您正在寻找valid
和invalid
函数。
https://hapi.dev/family/joi/?v=16.1.5#anyvalidvalues---aliases-equal
从Joi v16起,valid
和invalid
不再接受数组,它们接受可变数量的参数。
您的代码成为
var schema = Joi.object().keys({
firstname: Joi.string().valid(...['a','b']),
lastname: Joi.string().invalid(...['c','d']),
});
如果不从数组中获取值,也可以以.valid('a', 'b')
的形式传递(-: