↓このページを参考に書いてみた。っていうかほとんどそのまんまだけど。
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 イベントが発生したらストリームを閉じる、と。