[英]Querying the twitter api with Node.js but getting an error
我是 node.js 的新手,但我收到“結束后寫入”錯誤,我不知道為什么。 我知道還有其他類似的問題,但它們都沒有為我的問題提供有效的解決方案,我正在嘗試查詢 twitter api。
req.on('end', function() {
var string = JSON.parse(body);
res.writeHead(200, {
"Content-Type": "application/json"
});
res.end(body);
var tweetsArray = [];
var finalTweets = [];
client.get('search/tweets', {
q: string.teamname,
count: 1
},
function searchTweets(err, data, listStatuses) {
for (var index in data.statuses) {
var tweet = data.statuses[index];
tweetsArray.push(JSON.stringify(tweet.text));
}
/* Callback function to query Twitter for statuses*/
client.get('statuses/user_timeline', {
screen_name: string.teamname,
count: 1
},
function listStatuses(err, data, response) {
for (var index in data) {
var tweet = data[index];
tweetsArray.push(JSON.stringify(tweet.text));
}
var tweets = JSON.parse(tweetsArray[0]);
var tweetsB = JSON.parse(tweetsArray[1]);
finalTweets = tweets.concat(tweetsB);
res.write(JSON.stringify(finalTweets));
res.end();
});
});
您正在路由器開頭附近調用res.end()
。 這將結束響應,然后一旦您的回調被執行,您將再次使用res.write(JSON.stringify(finalTweets));
寫入響應res.write(JSON.stringify(finalTweets));
.
response.end([數據][, 編碼][, 回調])
此方法向服務器發出信號,表明所有響應標頭和正文都已發送; 該服務器應認為此消息已完成。 必須在每個響應上調用 response.end() 方法。
你打電話res.end(body);
在調用client.get('search/tweets'
。然后你有res.write(JSON.stringify(finalTweets));
(還有res.end()
)。你不能關閉http響應然后寫到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.