跳過到頁腳內容
NODE 說明

fastify npm(開發者的使用方法)

Fastify 外掛程式是一個 Node.js Web 框架,它高度專注於卓越的效能,旨在創建可擴展且高效的線上應用程式。 Fastify以其快速的處理速度和低開銷而聞名。 Fastify 強大的外掛架構和極簡風格使其安裝非常適合管理高負載和複雜的應用程式。

相反, IronPDF是一個靈活的 Node.js PDF 生成庫,它允許程式設計師即時建立、修改和轉換 PDF 文件。 它的主要功能包括:HTML 轉 PDF、相容多種文件格式以及豐富的自訂選項——所有這些都針對高效能場景進行了最佳化。

開發人員可以透過將FastifyIronPDF集成,輕鬆利用 Fastify 的速度和多功能性來產生動態 PDF 文件。 需要即時建立 PDF 的應用程序,包括那些能夠即時建立帳單、報告或用戶特定文件的應用程序,都非常適合這種組合。

這裡有一個簡單的範例:您設定一個Fastify伺服器來回應HTTP 請求,然後使用IronPDF將 Fastify 路由中的 HTML 文字轉換為 PDF。 此配置表明,將這兩個有效的工具結合起來創建可擴展、高效的 Web 應用程式是多麼簡單,這些應用程式可以創建動態 PDF,從而保證卓越的效能和靈活性。

Fastify npm 是什麼?

Fastify是一個針對速度和效率進行最佳化的、低開銷的 Node.js Web 框架。 Fastify 以其極低的開銷和快速的處理速度而聞名,因此建立可擴展的線上應用程式和 API 變得輕而易舉。 因為它使用 JSON Schema 提供基於模式的驗證,並且允許非同步編程,所以可以保證輸入和輸出的一致性和可靠性。 Fastify 的外掛程式架構鼓勵使用模組化和可維護的程式碼庫,這使得開發人員可以輕鬆添加新功能。 Fastify 透過清晰的錯誤訊息、全面的日誌記錄和易於使用的 API 等功能,改善了開發者的體驗。

! fastify npm(開發者使用方法):圖 1 - Fastify:適用於 Node.js 的快速、低開銷 Web 框架

由於其速度基準測試結果,它成為開發人員建立可靠、高效的 Web 應用程式的首選方案,在可用速度最快的 Node.js 框架中名列前茅。 Npm 讓安裝變得簡單,便於快速整合到專案中。 Fastify 的設計目標是為現代 Web 開發提供全面且有效率的工具包。

Fastify是一個極其高效的 Node.js Web 框架,旨在提供最小的開銷和最快的 Web 框架的最佳效能。 以下是它的一些獨特之處。 Fastify 內部會將模式編譯成高效能函數。

Fastify 的主要功能

高效能

在Node.js Web框架中,Fastify擁有最佳的效能基準之一,並且速度得到了最佳化。 它適用於高流量應用,因為它能夠迅速有效地回應查詢。

基於模式的驗證

Fastify 使用 JSON Schema 驗證傳出的回應和傳入的請求。 這降低了運行時出錯的可能性,並保證了資料的完整性。

可擴展性

Fastify 外掛的架構讓新增和修改功能變得簡單。 外掛程式使 Fastify 外掛程式團隊能夠透過封裝功能來組合和重新利用功能。

非同步程式設計

完全支援 async/await 語法,為管理非同步進程提供了清晰易懂的方法。

對開發者友善

Fastify 專案清晰的錯誤訊息、全面的日誌記錄和簡單的 API 讓開發和偵錯變得更加容易。

內建安全

為安全應用程式的開發者提供現成的工具和最佳實踐,以及針對常見漏洞的防禦措施。

中介軟體相容性

與 Express 等中間件框架相容,使現有應用程式的遷移更加簡單。

TypeScript 支援

由於它對 TypeScript 有很好的支援、內建類型和簡單的集成,因此對於類型安全的應用程式來說,它是一個極佳的選擇。

高效率路由

Fastify 的高效能路由技術保證了極低的開銷和快速的回應時間。

自動程式碼生成

透過從路由聲明自動產生 TypeScript 介面和 JSON 模式,減少樣板程式碼並提高可維護性。

錯誤處理

集中式錯誤處理系統,用於高效率偵測和管理錯誤。

靜態文件服務

支援直接提供靜態文件,簡化前端組件的交付。

建立和配置 Fastify Node.js JS

設定專案

首先,為您的專案建立一個新目錄,並使用 npm 指令初始化一個新的 Node.js 專案: npm init -y 。 這將為您的應用程式建立基本結構。

安裝 Fastify

npm install fastify
npm install fastify
SHELL

我們將安裝 Fastify 並將其新增至package.json檔案中的 Fastify 專案包。

設定 Fastify 伺服器

// server.js -> Create Fastify instance
const fastify = require('fastify')({ logger: true });

// Define a route
fastify.get('/', async (request, reply) => {
  return { hello: 'world' };
});

// Run the server
const start = async () => {
  try {
    await fastify.listen(3000);
    fastify.log.info(`Server listening on ${fastify.server.address().port}`);
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
// server.js -> Create Fastify instance
const fastify = require('fastify')({ logger: true });

// Define a route
fastify.get('/', async (request, reply) => {
  return { hello: 'world' };
});

// Run the server
const start = async () => {
  try {
    await fastify.listen(3000);
    fastify.log.info(`Server listening on ${fastify.server.address().port}`);
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
JAVASCRIPT
  • const fastify = require('fastify')({ logger: true }); : 匯入 Fastify 並啟用日誌記錄進行初始化。
  • fastify.get('/', async (request, reply) => { ... });: Defines a GET route for the root URL (/), returning a JSON response{ hello: 'world' }
  • await fastify.listen(3000); : 在連接埠 3000 上啟動 Fastify 伺服器。
  • fastify.log.info(...); : 記錄一則訊息,表示伺服器正在執行。

! fastify npm(開發者使用方法):圖 2 - 執行在本機連接埠 3000 上託管 Fastify 伺服器的程式後的控制台輸出。

由 Postman 工具中的程式碼產生的結果。

! fastify npm(開發者如何操作):圖 3 - 使用 Postman 工具運行在本機連接埠 3000 上託管 Fastify 伺服器的程式後的輸出。

IronPDF 和 Fastify 入門指南

要開始在 Node.js 中使用IronPDFFastify ,您需要整合 IronPDF 以產生 PDF,並將 Fastify 作為您的 Web 框架。 對於 Node.js 應用程式而言,IronPDF 是一個功能強大的程式庫,用於產生、修改和操作 PDF 文件。 以下是設定和使用 Fastify 與 IronPDF 的步驟:

什麼是 IronPDF?

IronPDF是一個功能強大的 Node.js PDF 庫,旨在根據 HTML 資訊建立高品質的 PDF 檔案。 在不犧牲原始網頁內容的前提下,它可以加快將 HTML、CSS 和其他 JavaScript 檔案轉換為格式正確的 PDF 的過程。 對於需要產生動態、可列印文件(如報表、發票和憑證)的 Web 應用程式來說,這是一個非常有用的工具。

IronPDF 的眾多功能中,可自訂頁面設定、頁首、頁腳,以及新增字體和圖像的功能只是其中的一部分。 它可以處理複雜的佈局和樣式,以確保每個測試 PDF 輸出都符合要求。 此外,IronPDF 還管理 HTML 中 JavaScript 的執行,從而實現精確的動態互動內容渲染。

fastify npm(開發者使用方法):圖 4 - IronPDF for Node.js:Node.js PDF 函式庫

IronPDF 的特點

從 HTML 產生 PDF

將 JavaScript、HTML 和 CSS 轉換為 PDF。 支援媒體查詢和回應式設計這兩項當代網路標準。 對於使用 HTML 和 CSS 動態裝飾 PDF 帳單、報告和文件非常有用。

PDF 編輯

預先存在的 PDF 可以加入文字、照片和其他內容。 從 PDF 檔案中取出文字和圖片。 將多個PDF文件合併成一個文件。將PDF文件拆分成多個單獨的文檔。 包括水印、註解、頁首和頁尾。

性能和可靠性

在工業環境中,高效能和可靠度是理想的設計品質。 輕鬆管理大型文件集。

安裝 IronPDF

安裝IronPDF 包,即可取得在 Node.js 專案中處理 PDF 所需的工具。

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

設定與 IronPDF 整合的 Fastify 伺服器

以下是關於如何在Node.js應用程式中整合IronPDF和Fastify以建立PDF文件的詳細步驟:

// index.js

const fastify = require('fastify')({ logger: true });
const IronPdf = require("@ironsoftware/ironpdf");
const document = IronPdf.PdfDocument;
const config = IronPdf.IronPdfGlobalConfig;

// Set the license key for IronPDF (empty string if not using a paid license)
config.setConfig({ licenseKey: '' });

// Define a Fastify route to generate PDF
fastify.get('/generate-pdf', async (request, reply) => {
  try {
    // Generate a simple PDF document from HTML
    const pdfDocument = await document.fromHtml('<h1>Hello, IronPDF!</h1>');
    const pdfBuffer = await pdfDocument.saveAsBuffer();

    // Set response headers to serve the PDF
    reply
      .code(200)
      .header('Content-Type', 'application/pdf')
      .header('Content-Disposition', 'attachment; filename="generated.pdf"')
      .send(pdfBuffer);

    fastify.log.info('PDF generated successfully!');
  } catch (err) {
    fastify.log.error('Failed to generate PDF: ', err);
    reply.code(500).send({ error: 'Failed to generate PDF' });
  }
});

// Run the server
const start = async () => {
  try {
    await fastify.listen(3000);
    fastify.log.info(`Server listening on ${fastify.server.address().port}`);
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
// index.js

const fastify = require('fastify')({ logger: true });
const IronPdf = require("@ironsoftware/ironpdf");
const document = IronPdf.PdfDocument;
const config = IronPdf.IronPdfGlobalConfig;

// Set the license key for IronPDF (empty string if not using a paid license)
config.setConfig({ licenseKey: '' });

// Define a Fastify route to generate PDF
fastify.get('/generate-pdf', async (request, reply) => {
  try {
    // Generate a simple PDF document from HTML
    const pdfDocument = await document.fromHtml('<h1>Hello, IronPDF!</h1>');
    const pdfBuffer = await pdfDocument.saveAsBuffer();

    // Set response headers to serve the PDF
    reply
      .code(200)
      .header('Content-Type', 'application/pdf')
      .header('Content-Disposition', 'attachment; filename="generated.pdf"')
      .send(pdfBuffer);

    fastify.log.info('PDF generated successfully!');
  } catch (err) {
    fastify.log.error('Failed to generate PDF: ', err);
    reply.code(500).send({ error: 'Failed to generate PDF' });
  }
});

// Run the server
const start = async () => {
  try {
    await fastify.listen(3000);
    fastify.log.info(`Server listening on ${fastify.server.address().port}`);
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();
JAVASCRIPT

建立 Fastify 伺服器:將 IronPDF ( const IronPdf = require(&#39;@ironsoftware/ironpdf&#39;); ) 和 Fastify ( const fastify = require(&#39;fastify&#39;)({ logger: true }); ) 匯入到index.js中。 這樣,系統內部就透過 Fastify 準備好了,以便管理 HTTP 請求和涉及建立 PDF 的任務。

建立 PDF 產生路徑:在 Fastify 中建立一個名為/generate-pdf路由來處理 PDF 產生請求。 Specify the HTML content to be converted into a PDF ('<h1>Hello, IronPDF!</h1>') and instantiate IronPDF inside the route handler. 可以使用fromHtml()方法非同步產生 PDF,並使用saveAsBuffer()方法將其轉換為位元組,以便下載,然後透過伺服器回應發送。

fastify npm(開發者使用方法):圖 5 - 控制台輸出

啟動 Fastify 伺服器:使用 `start()函數處理設定過程中可能出現的任何錯誤。在指定的連接埠(例如 3000)上執行 Fastify 伺服器( fastify.listen(3000); )。這可以確保伺服器已啟動並準備好處理傳入的請求。

! fastify npm(開發者使用方法):圖 6 - Fastify 伺服器與 IronPDF 集成,用於將 HTML 轉換為 PDF

結論

最後,透過在 Node.js 中將FastifyIronPDF結合使用,可以找到動態建立和提供 PDF 文件的強大解決方案。 透過 Fastify 外掛程式的輕量級設計和高效的路由功能,開發人員可以根據動態內容或使用者輸入輕鬆建立和操作 PDF,這與 IronPDF 的豐富功能相輔相成。 透過這種連接,Web應用程式的可擴展性和可靠性得到了保證,從而顯著提高了PDF創建操作的速度和效能。

開發者可以透過 Fastify 的簡易設定和簡單的路由處理,以及 IronPDF 將 HTML 資訊轉換為高品質 PDF 的功能,輕鬆添加複雜的 PDF 生成功能。 這種組合提供了靈活性和客製化選擇,可以滿足各種應用需求,無論是建立發票、報告還是資料匯出。

使用IronPDF許可證,您可以將 OCR、條碼掃描、PDF 創建、Excel 交互以及其他眾多功能添加到您的節點開發工具箱中,其永久 Lite 許可證僅需$799即可獲得。

當專案特定的授權方案有明確的定義時,開發人員可以輕鬆選擇最佳方案。 有關許可詳情,請造訪許可頁面。 IronPDF 也提供詳盡的文件和各種程式碼範例,幫助開發人員快速入門。 借助這些功能,開發人員可以成功、快速地解決各種各樣的問題。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。