↓このページを参考に書いてみた。っていうかほとんどそのまんまだけど。
cf. [NodeJS] ファイルをダウンロードする – YoheiM.NET
var http = require('http');
var fs = require('fs');
var path = require('path');
var url = process.argv[2];
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;
});
変えたのは URL から保存するファイル名を決めるとことだけ。
このスクリプトのキモは、res.pipe でデータをアウトプットストリームに流しこんでいるところ。で、end イベントが発生したらストリームを閉じる、と。