📜  下载文件 axios nodejs - Javascript (1)

📅  最后修改于: 2023-12-03 15:06:11.873000             🧑  作者: Mango

下载文件 Axios Node.js - JavaScript

在 Node.js 中使用 Axios 库可以方便地进行文件下载,无论是下载本地文件还是从远程服务器下载。

安装 Axios

要开始使用 Axios,首先需要将其安装为项目的依赖项。

可以使用 npm 在终端中直接安装 Axios 库:

npm install axios
下载本地文件

在 Node.js 中,可以使用 fs 模块来下载本地文件。首先需要使用 fs 模块的 createWriteStream() 方法创建一个可写流。然后,使用 Axios 的 get() 方法将文件作为响应流请求并将其写入到我们创建的流中:

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

axios({
  method: 'GET',
  url: 'file://path/to/local/file',
  responseType: 'stream'
}).then(function (response) {
  const writer = fs.createWriteStream('path/to/local/downloaded/file');

  response.data.pipe(writer);

  writer.on('finish', function () {
    console.log('File downloaded successfully');
  });

  writer.on('error', function (err) {
    console.error('Failed to download file', err);
  });
});
下载远程文件

下面是从远程服务器下载文件的示例。在这个示例中,响应流的类型是二进制,因此不必指定响应类型。

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

axios({
  method: 'GET',
  url: 'https://www.example.com/path/to/remote/file',
  responseType: 'stream'
}).then(function (response) {
  const writer = fs.createWriteStream('path/to/local/downloaded/file');

  response.data.pipe(writer);

  writer.on('finish', function () {
    console.log('File downloaded successfully');
  });

  writer.on('error', function (err) {
    console.error('Failed to download file', err);
  });
});
结论

Axios 提供了一种轻松下载文件的方法,无论是从本地还是从远程服务器。使用 Node.js 的 fs 模块可以轻松地将下载的数据写入到磁盘。这使得在 Node.js 中下载文件变得十分简单。

同时,还可以通过 Axios 的其他功能来控制下载的行为,例如指定请求头、身份验证等。Axios 具有强大的功能,可以满足大多数下载需求。