1 回答
TA贡献1799条经验 获得超9个赞
Joi.ref('details', {adjust: (value) => Object.keys(value).length}),
问题- 这里value指的details是数组。所以Object.keys(<details-array>).length不会按预期工作
解决方案-使用下面给出的最大值映射value数组Object.keys().length
Joi.object().pattern(Joi.in('keys'), Joi.string()),
问题-keys指的是兄弟姐妹details
解决方案- 添加/作为对象根的前缀
var schema = Joi.object({
details: Joi.array().items(Joi.object().pattern(Joi.in('/keys'), Joi.string())),
keys: Joi.array().length(
Joi.ref('details', {
adjust: value => {
return Math.max(...value.map(o => Object.keys(o).length));
}
})
)
});
闪电战
参考
https://github.com/hapijs/joi/blob/master/API.md#Relative-references
添加回答
举报
