無需外部庫即可在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中文網其他相關文章!