DSC*_*SCH 6 javascript node.js joi
我正在开发一个应该允许多个参数的 api,但对于其中三个我只想允许其中一个。每个键的值更容易,但我想知道 Joi 是否也允许它,或者我应该在我的服务器中添加额外的验证逻辑。
简而言之,对于 keys a,b或者c我想失败具有三个以上之一的任何请求,因此:
http://myapi.com/?a=value是一个有效的请求。
http://myapi.com/?b=value&c=value2是无效的。
谢谢!
您正在寻找object.xor(对等),如果正好一个a,b或者c是必需的。
定义一组键之间的排他关系,其中一个是必需的,但不是同时需要:
peers- 不能一起出现但需要其中之一的专有键名。peers可以是单个字符串值、字符串值数组或作为参数提供的每个对等点。
const schema = Joi.object().keys({
a: Joi.any(),
b: Joi.any(),
c: Joi.any()
}).xor('a', 'b', 'c');
Run Code Online (Sandbox Code Playgroud)
或者,object.oxor(同行)如果只有一个a,b或者c是允许的,但都不需要。
定义一组键之间的排他关系,其中只允许一个但不需要一个,其中:
peers- 不能一起出现但不需要的专有键名。
const schema = Joi.object().keys({
a: Joi.any(),
b: Joi.any(),
c: Joi.any()
}).oxor('a', 'b', 'c');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |