2017-10-20 21 views
1

Je reçois une erreur lors de la validation de mon schéma à l'aide joiValider schéma avec TypeError joi lorsque la propriété existe pas

J'ai écrit ceci:

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

et dans ma méthode 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); 
}); 

Mais quand les cours d'eau existe pas que je reçois un typeError

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

TypeError: Cannot read property 'streams' of undefined

Comment puis-je gérer cela? validation fonctionnant sans problème si le débit est inférieur à 80 mais quand il n'existe pas, l'application entre en exception ..

Répondre

0

Si vous accédez à des valeurs imbriquées profondes avant de valider, il est de votre responsabilité de vérifier les erreurs, joi n'est pas même appelé ici.

Si vous voulez que joi le fasse, vous devez lui donner le schéma complet item.