我想要一个查询模式,其中如果存在id
,那么将忽略可能存在的任何其他参数。但是,如果不存在id
,则适用验证条件,其中某些参数为required
。换句话说,像这样
query: {
id: Joi.number()
.description("record id. All other query params are ignored if id is provided.")
.integer()
.positive()
.optional(),
everythingElse: {
foo: Joi.string()
.required(),
bar: Joi.string()
.required(),
baz: Joi.string()
.optional(),
qux: Joi.string()
.optional()
}
}
以上可能吗?阅读Joi
语法,似乎我将不得不在每个所需参数的每个定义中都放置一个when('id', {is: Joi.number().positive().integer(), then: Joi.optional(), otherwise: Joi.required() })
子句。