如果我有两个字段,我只想验证至少一个字段是非空字符串,但是当两个字段都是空字符串时失败.
这样的事情无法验证
var schema = Joi.object().keys({
a: Joi.string(),
b: Joi.string()
}).or('a', 'b');
Run Code Online (Sandbox Code Playgroud)
验证时
{a: 'aa', b: ''}
Run Code Online (Sandbox Code Playgroud)
该or条件只测试了两种关键的存在a或b,但确实为条件测试是否a还是b如此.Joi.string()空字符串会失败.
以下是一些要展示的测试用例的要点
我正在开发一个应该允许多个参数的 api,但对于其中三个我只想允许其中一个。每个键的值更容易,但我想知道 Joi 是否也允许它,或者我应该在我的服务器中添加额外的验证逻辑。
简而言之,对于 keys a,b或者c我想失败具有三个以上之一的任何请求,因此:
http://myapi.com/?a=value是一个有效的请求。
http://myapi.com/?b=value&c=value2是无效的。
谢谢!