我的节点应用程序只是吐出了这个错误,我不明白:
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)的Twitter库传递的回调传入的,失败的行在'callback'函数内部,从我的看到,这应该是JSON.parse
的结果如果一切正常,否则将包含故障信息。有人知道发生了什么事吗?
最佳答案
您的理解是正确的,这意味着在这种情况下trendData
不是undefined
或其他一些虚假值,而是一个没有forEach
方法的对象。根据提供的有限代码段,trendData
是一个包含错误消息而不是您期望的数组的字符串。