我正在尝试在 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/