1

何かをパイプするときにファイルをアップロードおよびダウンロードするための mikeal の要求を使用してモジュールを作成しています。イベントをリッスンしてプログレスバーで進行状況を表示する方法 いくつかの例を示してください...

4

1 に答える 1

1

NPM レジストリを簡単に検索したところ、コマンド ラインにプログレス バーを表示するモジュールであるprogress が見つかりました。見栄えがよく、それを使用してダウンロードの進行状況を表示する方法を示す例も含まれています。ここで再現しています:

var ProgressBar = require('progress')
  , https = require('https');

var req = https.request({
    host: 'download.github.com'
  , port: 443
  , path: '/visionmedia-node-jscoverage-0d4608a.zip'
});

req.on('response', function(res){
  var len = parseInt(res.headers['content-length'], 10);

  console.log();
  var bar = new ProgressBar('  downloading [:bar] :percent :etas', {
      complete: '='
    , incomplete: ' '
    , width: 20
    , total: len
  });

  res.on('data', function(chunk){
    bar.tick(chunk.length);
  });

  res.on('end', function(){
    console.log('\n');
  });
});

req.end();

上記のコードは、次のようなプログレス バーを生成します。

downloading [=====             ] 29% 3.7s​

彼がヘッダーをチェックしcontent-lengthてダウンロード中のファイルの長さを取得し、それを使用して完了率を計算する方法に注目してください。次に、進行状況バーに各チャンクの長さを渡します。

于 2012-09-05T14:45:01.973 に答える