首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当属性不存在时,使用joi TypeError验证架构

当属性不存在时,使用joi TypeError验证架构
EN

Stack Overflow用户
提问于 2017-10-20 13:13:26
回答 1查看 1.2K关注 0票数 1

我在使用乔依验证我的模式时遇到了一个错误

所以我写了这个:

代码语言:javascript
复制
const joiSchema = Joi.object().options({ abortEarly: false }).keys({
  stream_name: Joi.string().required(),
  audio_bitrate: Joi.number().integer().min(80).required()
  ...
});

在我得到的方法中

代码语言:javascript
复制
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,但当它不存在时,应用程序异常。

EN

回答 1

Stack Overflow用户

发布于 2017-10-20 14:22:56

如果您在验证之前访问深度嵌套值,则检查错误是您的响应性,这里甚至没有调用joi。

如果您希望joi这样做,您必须给它提供完整的item模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46849868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档