亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何下載帶有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 關注
  • 693 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號