2017-10-20 145 views
1

在验证使用我的模式我得到一个错误joi验证模式与穰类型错误

所以我写了这一点:

const joiSchema = Joi.object().options({ abortEarly: false }).keys({ 
    stream_name: Joi.string().required(), 
    audio_bitrate: Joi.number().integer().min(80).required() 
    ... 
}); 

,并在我的get方法

data.forEach((item) => { 
    const result = Joi.validate({ 
    stream_name: item.value.name, 
    audio_bitrate: item.value.stats.media_info.streams[0].bitrate, 
}, 
joiSchema, 
(err, val) => { 
console.log(err); 
}); 

但是,当流不存在,我得到一个typeError

audio_bitrate: item.value.stats.media_info.streams[0].bitrate, ^

TypeError: Cannot read property 'streams' of undefined

我该如何处理?没有任何问题的验证工作,如果比特率小于80,但是当它不存在应用程序进入异常..

回答

0

如果您在验证之前访问深嵌套的值,它是你的责任来检查错误,穰不甚至在这里叫。

如果你想joi来做到这一点,你必须给它完整的item模式。