仅允许Joi架构中的键的特定值

时间:2018-02-27 11:41:58

标签: javascript joi

有没有其他方法可以在Joi验证模式中为关键的期望正则表达式模式设置特定值?

我的示例架构:

const schema = joi.object().keys({
    query: joi.object().keys({
        // allow only apple and banana
        id: joi.string().regex(/^(apple|banana)$/).required(),
    }).required(),
})

2 个答案:

答案 0 :(得分:26)

您也可以使用valid之类的

const schema = joi.object().keys({
  query: joi.object().keys({
    // allow only apple and banana
    id: joi.string().valid('apple','banana').required(),
  }).required(),
})

参考:https://github.com/hapijs/joi/blob/v13.1.2/API.md#anyvalidvalue---aliases-only-equal

答案 1 :(得分:1)

如果您想接受一个或多个值(苹果,香蕉或两者),则可以使用allowhttps://joi.dev/api/?v=17.3.0#anyallowvalues