簡體   English   中英

使用 Node.js 查詢 twitter api 但出現錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM