我的节点应用程序只是吐出这个错误,我不明白:
trendData && trendData.forEach(function(trendDataItem){
^
TypeError: Object Error: HTTP Error undefined: undefined has no method 'forEach'
at /home/myapp/node/dataSource/enabled/twitterTrending.js:9:36
&&运算符应该阻止任何undefined
值trendData
到达表达式的第二部分,但它似乎没有奏效。我对node.js的理解是我的代码不必关心多线程问题,所以我假设trendData
的值不可能在表达式的第一部分的评估和第二个。
trendData
值是从twitter库发出的回调传递的,源代码here,失败的行是在'回调'函数内部,从我看到的应该是如果一切正常,则为JSON.parse
的结果,否则将包含失败信息。
有人知道发生了什么事吗?
答案 0 :(得分:2)
您的理解是正确的,这意味着在这种情况下trendData
不是undefined
或其他一些虚假值,而是一个没有forEach
方法的对象。基于提供的有限片段trendData
是一个包含错误消息的字符串,而不是您期望的数组。