我在使用乔依验证我的模式时遇到了一个错误
所以我写了这个:
const joiSchema = Joi.object().options({ abortEarly: false }).keys({
stream_name: Joi.string().required(),
audio_bitrate: Joi.number().integer().min(80).required()
...
});在我得到的方法中
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.bitrate,^ TypeError:无法读取未定义的属性“流”
我该怎么处理呢?验证工作没有任何问题,如果比特率小于80,但当它不存在时,应用程序异常。
发布于 2017-10-20 14:22:56
如果您在验证之前访问深度嵌套值,则检查错误是您的响应性,这里甚至没有调用joi。
如果您希望joi这样做,您必须给它提供完整的item模式。
https://stackoverflow.com/questions/46849868
复制相似问题