国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Express.js 構(gòu)建一個簡單的 Node.js 應(yīng)用程序來下載 PDF

使用 Express.js 構(gòu)建一個簡單的 Node.js 應(yīng)用程序來下載 PDF

介紹

在本教程中,我們將逐步介紹使用 Express.js 構(gòu)建 Node.js 應(yīng)用程序的過程,該應(yīng)用程序允許用戶下載 PDF 文件。對于從文檔管理系統(tǒng)到教育平臺的各種應(yīng)用程序來說,這都是一個有用的功能。

前提

在我們開始之前,請確保您具備以下先決條件:

  • 安裝 Node.js(https://nodejs.org/)

  • 安裝 Npm (https://www.npmjs.com/)

  • 設(shè)置項目目錄并使用 初始化 Node.js 項目npm init。

第 1 步:項目設(shè)置

為您的項目創(chuàng)建一個新目錄 (app.js),并使用以下命令初始化 Node.js 項目:

npm init

第2步:安裝依賴項

為您的項目安裝必要的依賴項。您可以通過運行以下命令來執(zhí)行此操作:

npm i express

第 3 步:設(shè)置 Express 應(yīng)用程序

創(chuàng)建 Express 應(yīng)用程序并設(shè)置基本 Express 服務(wù)器。這是此步驟的代碼:

const express = require('express');
const app = express();
const port = 3000;
const fs = require('fs');

步驟 4:創(chuàng)建 PDF 下載路徑

創(chuàng)建處理 PDF 文件下載的 Express 路由。這是代碼:

app.get('/download-pdf', (req, res) => {
  const filePath = `./pdfs/java.pdf`;
});

確保您創(chuàng)建了一個名為“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 步:發(fā)送 PDF 文件以供下載

如果文件存在,我們可以使用res.download發(fā)送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步:錯誤處理

實施錯誤處理以捕獲并響應(yīng)各種錯誤,例如找不到文件或下載錯誤。以下是處理 Express 應(yīng)用中的錯誤的方法:

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 步:運行應(yīng)用程序

使用以下代碼啟動 Node.js 應(yīng)用程序:

app.listen(port, () => {
    console.log(`App listening on port ${port}`);
  });

現(xiàn)在你應(yīng)該擁有這個——

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}`);
});

現(xiàn)在您測試或運行您的應(yīng)用程序node app.js,然后使用您選擇的任何瀏覽器 {Chrome} 訪問此路由http://localhost:3000/download-pdf

就這樣??????


文章來源地址http://www.zghlxwxcb.cn/article/384.html

到此這篇關(guān)于使用 Express.js 構(gòu)建一個簡單的 Node.js 應(yīng)用程序來下載 PDF的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/384.html

如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系站長進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Node.js】Express-Generator:快速生成Express應(yīng)用程序的利器

    在Node.js世界中,Express是一個廣泛使用的、強大的Web應(yīng)用程序框架。它為開發(fā)者提供了一系列的工具和選項,使得創(chuàng)建高效且可擴展的Web應(yīng)用程序變得輕而易舉。然而,對于初學者來說,配置和初始化Express應(yīng)用程序可能會有些困難。為了解決這個問題,Express團隊推出了一款名

    2024年02月10日
    瀏覽(31)
  • 使用 Node.js 和 Socket.io 構(gòu)建實時聊天應(yīng)用程序

    主要是通過簡易聊天室熟練掌握 Socket.io 相關(guān)方法和運行的過程。 Socket.io 在進行實現(xiàn)簡易實時聊天室之前,我們先梳理一下我們需要的功能和流程。 所需功能: 1、告知用戶已經(jīng)連接到聊天室 2、自己發(fā)送時,頁面展示對應(yīng)的消息展示,而對方看的到信息是誰發(fā)送了什么 3、

    2024年02月13日
    瀏覽(29)
  • Nest的基本概念,以及如何使用Nest CLI來構(gòu)建一個簡單的Web應(yīng)用程序

    Nest是一個用于構(gòu)建高效、可擴展的Node.js服務(wù)器端應(yīng)用程序的框架。它是基于Express.js構(gòu)建的,并且提供了多種新特性和抽象層,可以讓開發(fā)者更加輕松地構(gòu)建復(fù)雜的應(yīng)用程序。 本文將介紹Nest的基本概念,以及如何使用Nest CLI來構(gòu)建一個簡單的Web應(yīng)用程序。 模塊 在Nest中,模塊

    2024年02月02日
    瀏覽(28)
  • Node.js 中的事件驅(qū)動編程:構(gòu)建強大應(yīng)用程序的利器

    引言: 在當今高度并發(fā)的網(wǎng)絡(luò)環(huán)境下,構(gòu)建高效、響應(yīng)迅速的應(yīng)用程序是開發(fā)人員的一項重要任務(wù)。Node.js,作為一種基于事件驅(qū)動編程模型的 JavaScript 運行環(huán)境,為開發(fā)人員提供了一個強大的工具。本文將介紹 Node.js 中的事件模型以及如何使用事件驅(qū)動編程模式構(gòu)建強大的

    2024年02月10日
    瀏覽(28)
  • Node.js npm V8 React Express的運行配合關(guān)系:構(gòu)建JavaScript應(yīng)用的基石

    目錄 Node.js 和 V8 引擎 Node.js 和 npm LTS(Long Term Support) React Node.js的作用 Express Node.js 和 V8 引擎 Node.js 使用 Google 的 V8 JavaScript 引擎 來執(zhí)行 JavaScript 代碼。V8 是一個高性能的 JavaScript 和 WebAssembly 引擎,用于在 Google Chrome 瀏覽器和 Node.js 中運行 JavaScript。 V8 引擎的更新 通常包括

    2024年03月12日
    瀏覽(19)
  • Node.js基本概念、特點、用途和常用模塊,以及Express框架開發(fā)一個web應(yīng)用

    Node.js基本概念、特點、用途和常用模塊,以及Express框架開發(fā)一個web應(yīng)用

    目錄 一、Node.js的基本概念和特點 二、Node.js的用途 三、Node.js的常用模塊 四、使用Node.js進行Web開發(fā) 1. 安裝Node.js 2. PyCharm配置Node.js 3. 使用http庫編寫一個web服務(wù) 4. 使用Express框架構(gòu)建Web應(yīng)用程序 5. 調(diào)試代碼 6. 發(fā)布應(yīng)用程序 參考文章 ?Node.js系列文章推薦閱讀: JavaScript匿名函

    2024年02月07日
    瀏覽(26)
  • Vue + JS + tauri 開發(fā)一個簡單的PC端桌面應(yīng)用程序

    Vue + JS + tauri 開發(fā)一個簡單的PC端桌面應(yīng)用程序

    Tauri 1 是一款應(yīng)用構(gòu)建工具包,讓您能夠為使用 Web 技術(shù)的所有主流桌面操作系統(tǒng)構(gòu)建軟件。tauri 框架與 electron 非常相似。 tauri electron 體積 10MB 100MB 打包速度 2s 17s Tauri 由一個可搭配任何前端來構(gòu)建桌面應(yīng)用的框架和 Rust 核心構(gòu)成。 創(chuàng)建窗口并向其提供原生功能支持的 Rust 二

    2024年01月17日
    瀏覽(25)
  • 如何使用Vue.js構(gòu)建桌面應(yīng)用程序

    Vue.js是一個流行的JavaScript框架,可以用于構(gòu)建Web應(yīng)用程序。但是,Vue.js也可以用于構(gòu)建桌面應(yīng)用程序。本文將介紹如何使用Vue.js構(gòu)建桌面應(yīng)用程序,包括以下步驟: 1. 選擇一個Vue.js框架:選擇一個適合你的Vue.js框架。我們推薦使用Electron,因為它是最流行的桌面應(yīng)用程序框架

    2024年02月15日
    瀏覽(21)
  • 前端Vue Node.js + Express + MongoDB 構(gòu)建的后端服務(wù)API接口

    構(gòu)建一個使用 Vue.js 作為前端, Node.js + Express + MongoDB 作為后端服務(wù)的全棧應(yīng)用涉及到多個步驟。這里簡要概述整個過程,并提供一些基本的代碼示例來幫助你開始。 安裝 MongoDB: 根據(jù)你的操作系統(tǒng)從 MongoDB 官網(wǎng) 下載并安裝 MongoDB。 啟動 MongoDB 服務(wù): 安裝完成后,根據(jù) MongoDB 的

    2024年04月14日
    瀏覽(42)
  • 【Bun1.0】使用 Bun.js 構(gòu)建快速、可靠和安全的 JavaScript 應(yīng)用程序

    【Bun1.0】使用 Bun.js 構(gòu)建快速、可靠和安全的 JavaScript 應(yīng)用程序

    Bun 是一個現(xiàn)代的JavaScript運行環(huán)境,如Node, Deno。主要特性如下: 啟動速度快。更高的性能。完整的工具(打包器、轉(zhuǎn)碼器、包管理)。 https://bun.sh 與傳統(tǒng)的 Node.js 不同,Bun.js 提供了一些新的特性和功能,例如: 更快的啟動速度、更小的內(nèi)存占用、更好的異常處理機制等等。

    2024年02月09日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包