mongodb - TypeError:无法读取未定义的属性“市场”(第 23 行)
问题描述
TypeError:无法读取未定义的属性“市场”(第 23 行)
我使用同一个数据库6个月没有接触任何东西,它从未失败过,今天开始出现这个错误,我试图找出故障,但在收集数据时我无法找到故障。
这是我收集值的基础(您可以通过单击链接访问数据图):
https ://webhooks.mongodb-stitch.com/api/client/v2.0/app/oddsbf-dvyne/服务/http/incoming_webhook/webhook0
这是我使用的脚本:
const response = UrlFetchApp.fetch("https://webhooks.mongodb-stitch.com/api/client/v2.0/app/oddsbf-dvyne/service/http/incoming_webhook/webhook0");
const mongo_matches = JSON.parse(response.getContentText());
const matches = mongo_matches.map(function(match) {
var over = '-'
var under = '-'
if(match['markets']['over_25'] !== undefined &&
match['markets']['over_25']['over']['odds'] !== undefined &&
(match['markets']['over_25']['over']['odds']['availableToBack'].length > 0 &&
match['markets']['over_25']['under']['odds']['availableToBack'].length > 0 )){
over = match['markets']['over_25']['over']['odds']['availableToBack'][0] !== undefined ? match['markets']['over_25']['over']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['markets']['over_25']['over']['odds']['availableToLay'][0]['price']['$numberDouble']
under = match['markets']['over_25']['under']['odds']['availableToBack'][0] !== undefined ? match['markets']['over_25']['under']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['markets']['over_25']['under']['odds']['availableToLay'][0]['price']['$numberDouble']
}
return [
match['markets']['marketStartTime'],
match['markets']['lastSaved'],
match['markets']['competition'],
match['markets']['homeTeam']['runnerName'],
match['markets']['awayTeam']['runnerName'],
match['markets']['homeTeam']['odds']['availableToBack'][0] !== undefined ? match['markets']['homeTeam']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['markets']['homeTeam']['odds']['availableToLay'][0]['price']['$numberDouble'],
match['markets']['awayTeam']['odds']['availableToBack'][0] !== undefined ? match['markets']['awayTeam']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['markets']['awayTeam']['odds']['availableToLay'][0]['price']['$numberDouble'],
match['markets']['draw']['odds']['availableToBack'][0] !== undefined ? match['markets']['draw']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['draw']['markets']['odds']['availableToLay'][0]['price']['$numberDouble'],
under,
over,
];
});
给出错误的第 23 行是这个:
match['markets']['draw']['odds']['availableToBack'][0] !== undefined ? match['markets']['draw']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['draw']['markets']['odds']['availableToLay'][0]['price']['$numberDouble'],
解决方案
将第 23 行替换为:
match['markets']['draw']['odds']['availableToBack'][0] !== undefined ? match['markets']['draw']['odds']['availableToBack'][0]['price']['$numberDouble'] : match['markets']['draw']['odds']['availableToLay'][0]['price']['$numberDouble'],
更新:
Logger.log(mongo_matches['draw'])
Logger.log(mongo_matches['matches'])
两者都返回 null。这意味着您无法从空对象访问信息。
推荐阅读
- visual-studio-code - 有没有办法从 Visual Studio 代码扩展的 webview 导航到外部 Windows 应用程序?
- ruby-on-rails - 时不时冻结一页
- javascript - 我在将 javascript 对象传输到 php 文件并在 MySQL 数据库中获取该对象时遇到了一些问题
- angular - SVG & Angular2+ 根据背景改变元素的颜色
- windows - 在 Windows 中临时删除环境 PATH 的一个变量
- geolocation - BackgroundGeolocation 不在后台工作,但在前台火灾中为什么?
- javascript - 试图将一个承诺函数重构为 try-catch 块
- python - 如何在python中将变量插入re.compile
- php - 在 Woocommerce 中显示链接的产品属性术语名称
- three.js - 如何使用three.js中的轨迹球控件以编程方式进行缩放、旋转和平移操作?