在 Web 应用程序中,文件下载是一个非常常见的需求。本文将介绍如何使用 Express.js 实现文件下载功能。
准备工作
首先,我们需要安装 Express.js。可以使用 npm 进行安装:
npm install express --save
接下来,我们需要创建一个 Express 应用程序。在项目根目录下创建一个 server.js
文件,并添加以下代码:
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 应用程序已经准备好了。
实现文件下载
要实现文件下载功能,我们需要使用 Node.js 的 fs
模块读取文件,并将其发送到客户端。
首先,我们需要添加一个路由处理程序,用于处理文件下载请求。在 server.js
文件中添加以下代码:
app.get('/download', (req, res) => { const filePath = '/path/to/file.pdf'; const fileName = 'file.pdf'; res.download(filePath, fileName, (err) => { if (err) { console.log(err); res.status(500).send('Internal Server Error'); } }); });
在上面的代码中,我们使用 res.download()
方法将文件发送到客户端。该方法需要三个参数:
filePath
:要下载的文件的完整路径。fileName
:要下载的文件的名称。callback
:可选参数,当下载完成或出现错误时调用。
现在,我们可以在浏览器中访问 /download
路由,从而下载指定的文件。
完整示例代码
下面是一个完整的示例代码:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); app.get('/download', (req, res) => { const filePath = '/path/to/file.pdf'; const fileName = 'file.pdf'; res.download(filePath, fileName, (err) => { if (err) { console.log(err); res.status(500).send('Internal Server Error'); } }); }); app.listen(3000, () => { console.log('App listening on port 3000!'); });
总结
本文介绍了如何使用 Express.js 实现文件下载功能。通过使用 Node.js 的 fs
模块和 Express.js 的 res.download()
方法,我们可以轻松地将文件发送到客户端。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65892530eb4cecbf2de5cc2c