簡體   English   中英

Node.js&Express:分部分提供文本文件

[英]Node.js & Express: Serving text files in parts

我有一個帶有node.js的網絡服務器並表達。 當我提供一個很大的文本文件時,需要花費很多時間才能加載到瀏覽器中。 假設有一個34 MB的文本文件提供給客戶端,他只需要下載34 MB即可檢查日志文件中的內容。

有什么我可以做的嗎? 可以部分享用嗎? 喜歡:第1/10部分-10/10部分

要提供部分文件,您可以采用一個字節范圍,並使用文件系統函數fs.createReadStream()讀取該范圍。 例如,如果您想要文件的十分之一,則可以測量其大小並計算字節范圍。

app.get('/log', function(req, res) {
  fs.stat('log.txt', function(err, stats) {
    var end = Math.ceil(stats.size / 10);
    var stream = fs.createReadStream('log.txt', {start: 0, end: end});

    var log = new String();
    readable.on('data', function(chunk) {
      log += chunk;
    });

    readable.on('end', function() {
      res.send(log);
    });
  });
});

您始終可以修改代碼以發送10-20%的代碼,或發送文件的最后10%的代碼,依此類推。

您是否研究過Node流 您可以使用它們以小塊形式發送數據,並提供反饋以顯示已下載了多少數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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