Node.jsでファイルをダウンロードする(2)

今日はちょっと進んで、JSON 形式のファイルから URL のリストを読み込んでダウンロードする。

var http = require('http');
var fs = require('fs');
var path = require('path');

var list = process.argv[2];

var urls = JSON.parse(fs.readFileSync(list, 'utf8'));
urls.forEach(function(url) {
  console.log(url);
  var filename = path.basename(url);

  // output stream
  var outFile = fs.createWriteStream(filename);

  var req = http.get(url, function(res) {
    res.pipe(outFile);
    res.on('end', function() {
      outFile.close();
    });
  });

  // error handler
  req.on('error', function(err) {
    console.log('Error: ' + err.message);
    return;
  });
});