javascript - 如何使用 Joi 验证具有未知键的对象并检查值是否为标量类型?
问题描述
我有一个我无法提前确定其键的对象。如何使用 Joi 为值强制执行特定类型(标量类型)?
具有未知键的示例对象:
const obj = {
x: "foo",
y: 7,
z: true,
p: { m: 1, n: false },
q: [ "a", "b", "c" ]
}
由于我只想接受类型,scalar
这意味着密钥应该导致验证失败。p
q
如何使用 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())
);
见沙盒
推荐阅读
- css - 来自 ScrollView 的 View Parent 的孩子没有填充空间?
- cassandra - 在 Cassandra 从 2.1 升级到 3.11 时跳过“nodetool upgradesstables”时间序列 ttl 到期数据
- javascript - 从一行后面显示两个文本元素
- math - 求解 Maxima 中的临界点
- excel - 如何在excel中为立方或更高幂的总和创建一个函数?
- javascript - 无法读取未定义的属性“正文”
- java - Selenium 驱动程序通过在浏览器中切换选项卡而冻结
- python - 如何使用 append() 并将循环输出到新列表而不是打印
- javascript - jquery动画中的数学/错误逻辑/为每个循环提供下降效果
- java - JPA Repository - 如果字段未填写,则查询搜索