I would like to download a website (html) and write it to an .html file with node and restler.
我想下载一个网站(html)并将其写入带有node和restler的.html文件。
https://github.com/danwrong/Restler/
Their initial example is already halfway there:
他们最初的例子已经在那里了一半:
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);
}
});
Instead of sys.puts(result);
, I would need to save it to a file.
而不是sys.puts(result);,我需要将它保存到文件中。
I am confused if I need a Buffer
, or if I can write it directly to file.
如果我需要一个缓冲区,或者我可以将它直接写入文件,我很困惑。
1 个解决方案
#1
9
You can simply use fs.writeFile
in node:
您只需在节点中使用fs.writeFile:
fs.writeFile(__dirname + '/file.txt', result, function(err) {
if (err) throw err;
console.log('It\'s saved!');
});
Or streamed more recommended approach, that can handle very large files and is very memory efficient:
或者流式传输更推荐的方法,可以处理非常大的文件,并且内存效率非常高:
// 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');
});
});
});
#1
9
You can simply use fs.writeFile
in node:
您只需在节点中使用fs.writeFile:
fs.writeFile(__dirname + '/file.txt', result, function(err) {
if (err) throw err;
console.log('It\'s saved!');
});
Or streamed more recommended approach, that can handle very large files and is very memory efficient:
或者流式传输更推荐的方法,可以处理非常大的文件,并且内存效率非常高:
// 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');
});
});
});