javascript - Joi 嵌套模式

标签 javascript node.js joi

我正在尝试在 joi 中创建嵌套模式,但它正在抛出错误

[错误:对象架构不能是 joi 架构]

var nestedSchema = joi.object({
    b: joi.number()
});

var base = joi.object({
    a: joi.string(),
    nestedData:joi.object(nestedSchema)
});

我应该如何在 joi 中定义嵌套模式?

最佳答案

虽然 Francesco 的回答有效,但没有必要使用 object.keys()。问题创建者所做的错误是将模式作为参数传递给 joi.object()

因此,创建嵌套模式就像将模式分配给属于另一个模式的键一样简单。

const schemaA = Joi.string()
const schemaB = Joi.object({ keyB1: schemaA, keyB2: Joi.number() })
const schemaC = Joi.object({
  keyC1: Joi.string(),
  keyC2: schemaB  
})

Joi.validate({ keyC1: 'joi', keyC2: { keyB1: 'rocks!', keyB2: 3 } }, schemaC)

关于javascript - Joi 嵌套模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36739427/

相关文章:

javascript - 如何绕过 Puppeteer 阻止系统

javascript - 数组中缺少元素

mongodb - 如何验证 ObjectID

javascript - 在 Joi 验证中将 `null` 视为 `undefined`

node.js - Joi有 "not"的概念吗?

javascript - 获取 json 数组上的最后一个 id 号 javascript

javascript - 如何在 vue js 中使用 Plyr.io 触发播放、暂停和结束事件

javascript - 使用 ASP.Net MVC 的回调在弹出窗口中加载选定的 GridView 项目

javascript - Rally 示例应用程序错误

node.js - 在重新启动 pm2 进程之前等待 mongodb 准备就绪