我使用Joi包进行服务器端验证。
我想检查给定字符串是在给定列表中还是不在给定列表中。(为值定义黑名单或白名单)
像"in“或"notIn”函数一样。我怎么能这么做?
var schema = Joi.object().keys({
firstname: Joi.string().in(['a','b']),
lastname : Joi.string().notIn(['c','d']),
});
发布于 2019-10-02 20:39:41
您正在寻找valid
和invalid
函数。
v16:https://hapi.dev/module/joi/api/?v=16.1.8#anyvalidvalues---aliases-equal
v17:https://hapi.dev/module/joi/api/?v=17.1.1#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')
传入(-:
发布于 2016-12-31 05:08:15
不如:
var schema = Joi.object().keys({
firstname: Joi.string().valid(['a','b']),
lastname : Joi.string().invalid(['c','d']),
});
还有别名:.allow和.only
以及.disallow和.not
发布于 2022-10-10 05:14:37
从2022年10月10日起更新现在有效的函数需要对象
Joi.string().valid({ ...values_array }),
https://stackoverflow.com/questions/41408469
复制