我的节点应用程序只是吐出了这个错误,我不明白:

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是一个包含错误消息而不是您期望的数组的字符串。

09-17 21:59