使用 Express.js 构建一个简单的 Node.js 应用程序来下载 PDF
介绍
在本教程中,我们将逐步介绍使用 Express.js 构建 Node.js 应用程序的过程,该应用程序允许用户下载 PDF 文件。对于从文档管理系统到教育平台的各种应用程序来说,这都是一个有用的功能。
前提
在我们开始之前,请确保您具备以下先决条件:
安装 Node.js(https://nodejs.org/)
安装 Npm (https://www.npmjs.com/)
设置项目目录并使用 初始化 Node.js 项目npm init。
第 1 步:项目设置
为您的项目创建一个新目录 (app.js),并使用以下命令初始化 Node.js 项目:
npm init
第2步:安装依赖项
为您的项目安装必要的依赖项。您可以通过运行以下命令来执行此操作:
npm i express
第 3 步:设置 Express 应用程序
创建 Express 应用程序并设置基本 Express 服务器。这是此步骤的代码:
const express = require('express'); const app = express(); const port = 3000; const fs = require('fs');
步骤 4:创建 PDF 下载路径
创建处理 PDF 文件下载的 Express 路由。这是代码:
app.get('/download-pdf', (req, res) => { const filePath = `./pdfs/java.pdf`; });
确保您创建了一个名为“pdfs添加您自己的 pdf 文件”的文件夹,我的文件名为java.pdf
步骤5:检查PDF文件是否存在
使用该fs.existsSync方法检查指定目录中是否存在PDF文件。如果文件不存在,我们将处理文件未找到错误。
if (!fs.existsSync(filePath)) { const notFoundError = new CustomError(404, 'PDF file not found'); return next(notFoundError); }
第 6 步:发送 PDF 文件以供下载
如果文件存在,我们可以使用res.download发送PDF文件的方法进行下载。这是此步骤的代码:
res.download(filePath, `java.pdf`, (err) => { if (err) { const downloadError = new CustomError(500, 'Error: Unable to download the PDF file'); return next(downloadError); } }); });
第7步:错误处理
实施错误处理以捕获并响应各种错误,例如找不到文件或下载错误。以下是处理 Express 应用中的错误的方法:
app.use((err, req, res, next) => { if (err instanceof customError) { res.status(err.statusCode).json({ error: err.message }); } else { // Handle other errors res.status(500).json({ error: 'Internal Server Error' }); } });
第 8 步:运行应用程序
使用以下代码启动 Node.js 应用程序:
app.listen(port, () => { console.log(`App listening on port ${port}`); });
现在你应该拥有这个——
const express = require('express'); const app = express(); const port = 3000; const fs = require('fs'); // Replace this with your actual PDF directory path const pdfDirectory = './pdfs'; // Error handling class class CustomError extends Error { constructor(statusCode, message) { super(); this.statusCode = statusCode; this.message = message; } } // Middleware for error handling app.use((err, req, res, next) => { if (err instanceof CustomError) { res.status(err.statusCode).json({ error: err.message }); } else { res.status(500).json({ error: 'Internal Server Error' }); } }); app.get('/download-pdf', (req, res) => { const filePath = `${pdfDirectory}/java.pdf`; if (!fs.existsSync(filePath)) { const notFoundError = new CustomError(404, 'PDF file not found'); return next(notFoundError); } res.download(filePath, `java.pdf`, (err) => { if (err) { const downloadError = new CustomError(500, 'Error: Unable to download the PDF file'); return next(downloadError); } }); }); app.listen(port, () => { console.log(`App listening on port ${port}`); });
现在您测试或运行您的应用程序node app.js,然后使用您选择的任何浏览器 {Chrome} 访问此路由http://localhost:3000/download-pdf
就这样🙏🙏🙏文章来源:https://www.toymoban.com/diary/web/384.html
文章来源地址https://www.toymoban.com/diary/web/384.html
到此这篇关于使用 Express.js 构建一个简单的 Node.js 应用程序来下载 PDF的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!