如何使用 Express.js 实现文件下载

在 Web 开发中,文件下载是一个常见的需求。在 Express.js 中,可以通过简单的代码实现文件下载功能。

本文将介绍如何使用 Express.js 实现文件下载,并提供示例代码和详细的解释。

1. 安装 Express.js

在使用 Express.js 之前,需要先安装它。可以使用 npm 命令进行安装:

2. 创建 Express 应用

在安装完 Express.js 之后,需要创建一个 Express 应用。可以使用以下代码创建一个简单的 Express 应用:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

这个 Express 应用只有一个路由,当访问根路径时,会返回 "Hello World!"。

3. 实现文件下载

在 Express.js 中,可以使用 res.download() 方法实现文件下载。可以使用以下代码将一个文件发送到客户端:

app.get('/download', (req, res) => {
  const file = `${__dirname}/example.txt`;
  res.download(file);
});

在这个例子中,当访问 /download 路径时,会下载 example.txt 文件。res.download() 方法会自动设置响应头,告诉客户端这是一个下载文件,并将文件发送到客户端。

4. 设置下载文件名

默认情况下,Express.js 使用文件的原始名称作为下载文件的名称。但是,有时候需要设置下载文件的名称。可以使用以下代码设置下载文件的名称:

app.get('/download', (req, res) => {
  const file = `${__dirname}/example.txt`;
  const filename = 'example-download.txt';
  res.download(file, filename);
});

在这个例子中,将下载的文件名设置为 example-download.txt

5. 指定下载文件类型

在某些情况下,需要指定下载文件的类型。可以使用以下代码指定下载文件的类型:

app.get('/download', (req, res) => {
  const file = `${__dirname}/example.txt`;
  const filename = 'example-download.txt';
  const mimetype = 'text/plain';
  res.setHeader('Content-Type', mimetype);
  res.download(file, filename);
});

在这个例子中,将下载文件的类型设置为文本类型。

6. 总结

本文介绍了如何使用 Express.js 实现文件下载功能,并提供了详细的解释和示例代码。使用 Express.js 实现文件下载功能非常简单,只需要使用 res.download() 方法即可。通过设置下载文件名和下载文件类型,可以更好地控制文件下载的过程。

7. 示例代码

完整的示例代码如下:

const express = require('express');
const app = express();

app.get('/download', (req, res) => {
  const file = `${__dirname}/example.txt`;
  const filename = 'example-download.txt';
  const mimetype = 'text/plain';
  res.setHeader('Content-Type', mimetype);
  res.download(file, filename);
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658bc350eb4cecbf2d103075


纠错
反馈