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
添加回答
舉報