使用 Express.js 构建一个简单的 Node.js 应用程序来下载 PDF

27,670次阅读
没有评论

共计 3028 个字符,预计需要花费 8 分钟才能阅读完成。

使用 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

到此这篇关于使用 Express.js 构建一个简单的 Node.js 应用程序来下载 PDF 的文章就介绍到这了, 更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持 TOY 模板网!

原文地址:https://www.toymoban.com/diary/web/384.html

如若转载,请注明出处:如若内容造成侵权 / 违法违规 / 事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计3028字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)