📜  如何使用 Node.js 下载文件?(1)

📅  最后修改于: 2023-12-03 14:52:00.311000             🧑  作者: Mango

如何使用 Node.js 下载文件?

Node.js 是一个非常流行的 JavaScript 运行时环境,它可以用于服务器端和客户端开发。在 Node.js 中,我们可以使用各种模块来实现文件的下载操作。

本文将介绍如何在 Node.js 中下载文件。

1. 使用 http 模块下载文件

我们可以使用 Node.js 内置的 http 模块来下载文件。以下是示例代码:

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

const fileUrl = 'http://example.com/file.txt';
const filePath = 'file.txt';

const file = fs.createWriteStream(filePath);

http.get(fileUrl, (response) => {
  response.pipe(file);

  file.on('finish', () => {
    file.close();
    console.log('File downloaded successfully!');
  });
});
解释:
  • http 模块用于创建 HTTP 服务器和客户端。
  • fs 模块用于读取和写入文件。
  • fileUrl 是要下载的文件的 URL。
  • filePath 是下载的文件的保存路径。
  • fs.createWriteStream() 创建一个可写入的流并将其保存到 filePath
  • http.get() 用于发出 GET 请求并获取响应。
  • response.pipe(file) 将响应管道到 file 中。
  • file.on('finish') 在文件下载完成后关闭文件流,并输出提示信息。
2. 使用 request 模块下载文件

另一个强大的 Node.js 模块是 request。它是唯一需要安装的模块。

使用 request 模块下载文件:

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

const fileUrl = 'http://example.com/file.txt';
const filePath = 'file.txt';

const file = fs.createWriteStream(filePath);

request(fileUrl)
  .pipe(file)
  .on('finish', () => {
    console.log('File downloaded successfully!');
  });
解释:
  • request 模块用于发送 HTTP 请求。
  • fs 模块用于读取和写入文件。
  • fileUrl 是要下载的文件的 URL。
  • filePath 是下载的文件的保存路径。
  • fs.createWriteStream() 创建一个可写入的流并将其保存到 filePath
  • request(fileUrl) 发出一个 GET 请求并返回响应。
  • .pipe(file) 将响应管道到 file 中。
  • .on('finish') 在文件下载完成后输出提示信息。
总结

本文介绍了如何在 Node.js 中下载文件。使用内置的 http 模块或第三方的 request 模块都可以实现该功能。希望这篇文章对你有所帮助!