无需外部库即可在 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中文网其他相关文章!