TypeError: Impossible de lire la propriété ‘message’ de non défini – API Twitter

Vous trouverez ci-dessous la sortie lors de l’exécution de app.js. Cela a commencé à se produire totalement au hasard quand tout fonctionnait bien. Absolument aucun changement n’a été fait.

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. (/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. (/home/ec2-user/environment/node_modules/request/request.js:1085:12) at IncomingMessage.g (events.js:292:16) 

J’ai essayé de créer de nouvelles instances à partir de ma twig principale (sans commettre depuis le dernier travail) et j’ai toujours le même problème. Des idées?

Le code à l’origine de l’erreur , même si ce code fonctionnait auparavant.

 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}`) } }); 

Image de la première occurrence . Comme vous pouvez voir que tout fonctionnait correctement, cette erreur est venue de nulle part sans aucune modification de l’environnement ou du code.

Comme vous pouvez voir que tout fonctionnait correctement, cette erreur est venue de nulle part sans aucune modification de l'environnement ou du code.

METTRE À JOUR:

Sortie lors de la consignation d’une erreur avec console.log('Try Favorite - ', err.message); plutôt que 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 

Notez également que la fonction retweet utilise la même méthode de journalisation sur console. Voir le code ci-dessous et les résultats sont bons.

 // try retweet T.post('statuses/retweet', id, function(err, response){ // log failures if(err){ console.log('Try Retweet - ', err[0].message); } 

Twit utilise request pour envoyer des requêtes HTTP à l’API Twitter. Ainsi, l’erreur sera un object unique et non un tableau. Votre gestionnaire d’erreurs ressemblera à

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