javascript - 类型错误 : Cannot read property 'message' of undefined - Twitter API

标签 javascript node.js twitter bots node-modules

下面是运行 app.js 时的输出。当一切正常时,这开始完全随机发生。绝对没有进行任何更改。

 TypeError: Cannot read property 'message' of undefined
        at /home/ec2-user/environment/rt-bot/app.js:78:48
        at Request._callback (/home/ec2-user/environment/node_modules/twitter/lib/twitter.js:220:14)
        at Request.self.callback (/home/ec2-user/environment/node_modules/request/request.js:186:22)
        at emitTwo (events.js:106:13)
        at Request.emit (events.js:191:7)
        at Request.<anonymous> (/home/ec2-user/environment/node_modules/request/request.js:1163:10)
        at emitOne (events.js:96:13)
        at Request.emit (events.js:188:7)
        at IncomingMessage.<anonymous> (/home/ec2-user/environment/node_modules/request/request.js:1085:12)
        at IncomingMessage.g (events.js:292:16)

我已经尝试从我的 master 分支创建新实例(自上次工作以来没有提交),甚至仍然出现此错误。有什么想法吗?

导致错误的代码,尽管此代码之前可以正常工作。

T.get('search/tweets', query, function(err, data, response) {
  // continue if no errors
  if(!err){
    // loop
    for(let i = 0; i < data.statuses.length; i++){
      // get latest tweet ID
      let id = { id: data.statuses[i].id_str }

      // try favorite
      T.post('favorites/create', id, function(err, response){

        // log failures
        if(err){
          console.log('Try Favorite - ', err[0].message);
        }

        // log success
        else{
          let username = response.user.screen_name;
          let tweetId = response.id_str;
          console.log('Favorited: ', `https://twitter.com/${username}/status/${tweetId}`)
        }

      });

第一次出现的图片。如您所见,一切正常,然后这个错误不知从何而来,完全没有对环境或代码库进行任何更改。

As you can see everything was functioning fine, then this error came out of nowhere with absolutely no changes to environment or codebase.

更新:

使用 console.log('Try Favorite - ', err.message); 而不是 console.log('Try Favorite - ', err[0].消息);

[[Apr 28 21:27:00.702]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.705]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.706]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.707]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.708]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.709]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.712]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.713]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.718]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests
[[Apr 28 21:27:00.793]] [LOG]   Try Favorite -  HTTP Error: 429 Too Many Requests

另请注意,转推功能使用相同的控制台日志记录方法。请参阅下面的代码,并输出正常。

// try retweet
      T.post('statuses/retweet', id, function(err, response){

        // log failures
        if(err){
          console.log('Try Retweet - ', err[0].message);
        }

最佳答案

Twit使用 request向 Twitter API 发送 HTTP 请求,所以错误将是单个对象而不是数组,所以你的错误处理程序看起来像

if(err){
  console.log('Try Favorite - ', err.message);
}

关于javascript - 类型错误 : Cannot read property 'message' of undefined - Twitter API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081097/

相关文章:

javascript - Canvas 图像向左移动时会留下奇怪的痕迹

node.js - nodejs,如何检查每个页面上是否定义了 session

python - 获取 Bios 中包含某些单词的所有 Twitter 用户个人资料的列表

javascript when 函数和任意数量的请求

javascript - 如何自定义 ionic 选择和 ionic 选项菜单( ionic )

eclipse - Nodeclipse 控制台中的奇怪字符

javascript - 导入对象时出错 : SyntaxError: Unexpected token {

java - Twitter 流媒体期间无法保存推文

php - 确定 Twitter Search Api 返回了多少页

javascript - 如何在AngularJS组件中设置观察者?