我想下载一个网站(html)并将其写入带有node和restler的.html文件.
https://github.com/danwrong/Restler/
他们最初的例子已经在那里了一半:
var sys = require('util'),rest = require('./restler'); rest.get('http://google.com').on('complete',function(result) { if (result instanceof Error) { sys.puts('Error: ' + result.message); this.retry(5000); // try again after 5 sec } else { sys.puts(result); } });
而不是sys.puts(result);,我需要将其保存到文件中.
如果我需要一个缓冲区,或者我可以直接将它写入文件,我很困惑.
解决方法
您可以在节点中使用
fs.writeFile
:
fs.writeFile(__dirname + '/file.txt',result,function(err) { if (err) throw err; console.log('It\'s saved!'); });
或者流式传输更推荐的方法,可以处理非常大的文件并且内存效率非常高:
// create write stream var file = fs.createWriteStream(__dirname + '/file.txt'); // make http request http.get('http://example.com/',function(res) { // pipe response into file res.pipe(file); // once done file.on('finish',function() { // close write stream file.close(function(err) { console.log('done'); }); }); });