2012-09-18 157 views
1

我使用與的NodeJS一些額外的模塊從一組的網站做網頁抓取和媒體的物品識別。的Node.js的Response.Write緩衝限制限制

節點服務器基本上拋出回所指定的網頁及其相關元數據的所有項目的JSON標記。 JSON數據被正確地生成,我可以看到它在服務器日誌但是當我其寫入到客戶端,由於某種原因,JSON響應被終止。

我測試了這與所有瀏覽器和使用休息客戶端,它似乎指向的response.write(響應,'utf-8')可能不會發送整個數據或連接關閉的問題一些原因。

我覈實,沒有涉及我的測試案例分塊所以正在積極地通過客戶端關閉如果仍然在等待下一個數據塊的連接毫無疑問。即在這種情況下的response.write返回true,這意味着所有的數據都被寫入客戶端。

任何指針,以什麼可能會造成被終止連接,或者響應被截斷?對於較小尺寸的JSON響應,客戶端會正確接收響應。

Code: 
return parseDOM(page, url, function(err, response){ 
      if(err){ 
       res.writeHeader(200, {'Content-Type':'application/json'}); 
       res.end('Error Parsing DOM from ' + url); 
       e.message = 'Error Parsing DOM'; 
       callback(e, req, res, targetUrl);    
       return; 
      } 
      else { 
       if(response){ 
        res.writeHeader(200, {'Content-Type':'application/json', 'Content-Length':response.length}); 
        console.log(response); 
        res.write(response, 'UTF-8'); 
        res.end(); 
        callback(null, req, res, targetUrl); 
        return; 
       } 
      } 
     }); 

回答