http.get - 等到文件生成

时间:2015-07-08 19:04:03

标签: javascript node.js file http download

我正在使用webservice从网址生成PDF。然后我想将生成的文件保存到文件系统。问题是,保存的文档是空的。这可能是,因为http.get不等到文件生成。 我该如何等待生成的文件?

var url, writeStream;

writeStream = fs.createWriteStream(path.join(dirPath, type + ".pdf"));

url = "http://html2pdf.it?url=" + (encodeURIComponent('http://www.google.com/'));

http.get(url, function(res) {
  res.pipe(writeStream);
  writeStream.on('finish', function() {
    console.log('Path:', path.join(dirPath, type + ".pdf"));
  });
});

1 个答案:

答案 0 :(得分:1)

这是因为您的网络服务会返回301返回代码(将您重定向到另一个网页),而节点http.get()就会停在那里。

你应该使用更高级别的包装器,如request,它更容易使用,并且实际上会做你真正想要的。

请注意,您可以通过console.logging请求中的res来了解自己:

http.get(url, function(res) {
  console.log(res);
  // ...
});