NodeJS获取stream文件下载的字节数

在这段代码中,我从一个urlstream中传输一个文件并将其保存到一个文件中。 有没有办法通过pipe道来计算pipe道字节数呢? (这会告诉我的文件大小。)

request.stream(url) .pipe(outputFile) 

有没有一些图书馆可以通过下载来完成这个工作,或者我自己做一个简单的方法呢?

你可以用request库这样做:

 const request = require('request'); const fs = require('fs'); var downloaded = 0; request.get(url) .on('data', function(chunk){ downloaded += chunk.length; console.log('downloaded', downloaded); }) .pipe(fs.createWriteStream(fileName)); 

此外,你可以检查这个链接 ,了解如何在没有request包的情况下做到这一点。

更新#1(纯NodeJS解决scheme)

 var http = require('http'); var fs = require('fs'); var download = function(url, dest, cb) { var file = fs.createWriteStream(dest); var downloaded = 0; var request = http.get(url, function(response) { response.pipe(file); response.on('data', function(chunk){ downloaded += chunk.length; console.log(downloaded); }) file.on('finish', function() { file.close(cb); }); }); }