首頁 >web前端 >js教程 >如何在不使用外部函式庫的情況下在 Node.js 中下載檔案?

如何在不使用外部函式庫的情況下在 Node.js 中下載檔案?

Linda Hamilton
Linda Hamilton原創
2024-12-13 09:16:14707瀏覽

How Can I Download Files in Node.js Without Using External Libraries?

無需外部庫即可在Node.js 中下載檔案

在Node.js 中下載檔案可以本地完成,無需依賴外部庫。操作方法如下:

使用內建 Fetch API (Node 18)

Node 18 引進了實作 Fetch API 的 fetch 全域變數。此API提供下載資料的方法,包括文字、JSON和二進位資料。例如:

const fetch = require('node-fetch');

const url = 'http://example.com/file.jpg';
const response = await fetch(url);
const buffer = await response.arrayBuffer();

fs.writeFileSync('filename.jpg', Buffer.from(buffer));

使用 HTTP GET 要求(較舊的 Node 版本)

在 Node 18 之前,您可以建立 HTTP GET請求並將其回應透過管道傳輸到檔案流:

const http = require('http');
const fs = require('fs');

const file = fs.createWriteStream('file.jpg');
const url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg';
const request = http.get(url, (response) => {
  response.pipe(file);
});

// Close file stream after download completes
file.on('finish', () => {
  file.close();
  console.log('Download completed');
});

設定命令列選項

如果您需要命令列選項,例如指定目標檔案或URL ,您可以使用Commander等軟體包進行自訂:

const program = require('commander');

program
  .option('-o, --output <file>', 'Output file name')
  .option('-u, --url <url>', 'URL to download from')
  .parse(process.argv);

const file = fs.createWriteStream(program.output || 'default.jpg');
const request = http.get(program.url, (response) => {
  response.pipe(file);
});

更多詳細資訊和其他方法,請參閱以下資源:https://sebhastian.com/nodejs-download-file/

以上是如何在不使用外部函式庫的情況下在 Node.js 中下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn