下面是运行 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}`)
}
});
第一次出现的图片。如您所见,一切正常,然后这个错误不知从何而来,完全没有对环境或代码库进行任何更改。
更新:
使用 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/