2017-10-20 11 views
1

をプロパティではありませんが存在する場合:検証スキーマ<a href="https://github.com/hapijs/joi" rel="nofollow noreferrer">joi</a></p> <p>を使用して、私のスキーマを検証するので、私は、この書いている間、私はエラーを取得しています

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にする場合は、完全なスキーマを与える必要があります。

関連する問題

 関連する問題