为了账号安全,请及时绑定邮箱和手机立即绑定

如何下载带有Node.js的文件(不使用第三方库)?

如何下载带有Node.js的文件(不使用第三方库)?

FFIVE 2019-07-02 15:20:44
如何下载带有Node.js的文件(不使用第三方库)?如何下载带有Node.js的文件不使用第三方库?我不需要什么特别的东西。我只想从给定的URL下载一个文件,然后将它保存到给定的目录中。
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

别忘了处理错误!以下代码基于奥古斯托·罗曼的答案。

var http = require('http');var fs = require('fs');var download = function(url, dest, cb) {
  var file = fs.createWriteStream(dest);
  var request = http.get(url, function(response) {
    response.pipe(file);
    file.on('finish', function() {
      file.close(cb);  // close() is async, call cb after close completes.
    });
  }).on('error', function(err) { // Handle errors
    fs.unlink(dest); // Delete the file async. (But we don't check the result)
    if (cb) cb(err.message);
  });};


查看完整回答
反对 回复 2019-07-02
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

正如布兰登·蒂利所说,但有了适当的控制流程:

var http = require('http');var fs = require('fs');var download = function(url, dest, cb) {
  var file = fs.createWriteStream(dest);
  var request = http.get(url, function(response) {
    response.pipe(file);
    file.on('finish', function() {
      file.close(cb);
    });
  });}

而不等待finish事件,天真的脚本可能会以不完整的文件结束。

编辑:感谢@Augusto Roman指出cb应该传递给file.close没有明确的调用。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 638 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信