node.js – 如何使用Restler下载网站并将其写入文件?

前端之家收集整理的这篇文章主要介绍了node.js – 如何使用Restler下载网站并将其写入文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想下载一个网站(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');
        });
    });
});

猜你在找的Node.js相关文章