首页 > 解决方案 > 如何在 Joi 字符串验证中使用枚举值

问题描述

我正在为我的 HTTP 请求使用 Joi 验证器。我有一个名为type. 我需要确保参数的可能值是“ios”或“android”。

我怎样才能做到这一点?

body : {
  device_key : joi.string().required(),
  type : joi.string().required()
}

标签: node.jsvalidationexpressjoi

解决方案


您可以使用valid.

const schema = Joi.object().keys({
  type: Joi.string().valid('ios', 'android'),
});

const myObj = { type: 'none' };
const result = Joi.validate(myObj, schema);
console.log(result);

这给出了一个错误ValidationError: child "type" fails because ["type" must be one of [ios, android]]


推荐阅读