繁体   English   中英

Joi 验证:有没有办法在一个 go 中允许多个模式对象的未知键

[英]Joi Validation: Is there a way to allow unknown keys for several schema objects in one go

我有几个包含近百个模式对象的验证器文件。 我想同时验证所有这些未知密钥。 我已经想出了一种方法来验证我在下面发布的一个 object 的未知密钥。 有没有办法在一个 go 中做到这一点? 我正在寻找一种干燥的方式来做到这一点。

const schema = Joi.object().keys({
  a: Joi.string().required(),
  b: Joi.string().required()
}).unknown(true);

// or
const schema = Joi.object().keys({
  a: Joi.string().required(),
  b: Joi.string().required()
}).options({ allowUnknown: true })

您可以使用.defaults创建您自己的自定义 joi,在这种情况下将 allowUnkown 设置为默认值:

// Create your custom Joi
const customJoi = Joi.defaults((schema) => schema.options({
  allowUnknown: true 
}));

// schema using original Joi
const schema1 = Joi.object().keys({
  a: Joi.string().required(),
  b: Joi.string().required()
})

// schema using custom Joi
const schema2 = customJoi.object().keys({
  a: Joi.string().required(),
  b: Joi.string().required()
})
 
// INVALID, "c" is not allowd
schema1.validate({ a: "a", b: "b", c: 10 })
// VALID
schema2.validate({ a: "a", b: "b", c: 10 })

这也有效:

var Joi = require("joi").defaults((schema) => schema.options({
  allowUnknown: true 
}));

或者

var Joi = require("joi")
Joi = Joi.defaults((schema) => schema.options({
  allowUnknown: true 
}));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM