Ниже показан результат при запуске 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)

Я пробовал создавать новые экземпляры из своей основной ветки (без коммитов с момента последней работы) и даже получаю эту ошибку. Любые идеи?

Код, вызывающий ошибку , хотя раньше этот код работал.

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].message);

[[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);
        }
3
CodeSpent 29 Апр 2018 в 00:09

1 ответ

Лучший ответ

Twit использует запрос на отправку HTTP-запросов в Twitter API, поэтому ошибка будет отдельным объектом, а не массивом, поэтому обработчик ошибок будет выглядеть так

if(err){
  console.log('Try Favorite - ', err.message);
}
1
Salah 28 Апр 2018 в 21:30