如何使用Joi验证具有未知键的对象并检查值是否为标量类型



我有一个对象的键无法提前确定。如何使用Joi为值强制执行特定类型(标量类型(?

具有未知密钥的示例对象:

const obj = {
x: "foo",
y: 7,
z: true,
p: { m: 1, n: false },
q: [ "a", "b", "c" ]
}

由于我只想接受scalar类型,这意味着密钥pq应该会导致验证失败。

我如何与Joi一起实现这一点?

到目前为止,我已经尝试过了,但它允许非标量值,如['a', 'b', 'c']:

Joi.object().pattern(Joi.string(), Joi.boolean(), Joi.number())

使用此

const validationSchema = Joi.object().pattern(
Joi.string(),
Joi.alternatives().try(Joi.number(), Joi.string(), Joi.boolean())
);

参见沙箱

https://codesandbox.io/s/jovial-paper-hqiun

相关内容

  • 没有找到相关文章

最新更新