实现hapi-joi条件模式

时间:2019-02-14 10:35:23

标签: hapijs joi

我想要一个查询模式,其中如果存在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() })子句。

0 个答案:

没有答案