跳過到頁腳內容
NODE 說明

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

Fastify插件是一個專注於優良效能的Node.js網頁框架,其目的是創建可擴展且高效的線上應用程式。 Fastify因其快速的處理速度和低開銷而聞名。 它的強大插件架構和簡約風格使Fastify安裝非常適合處理繁重負載和複雜應用程式。

相反地,IronPDF是一個靈活的Node.js PDF生成程式庫,讓程式設計師能即時創建、修改和轉換PDF文件。 從HTML到PDF的轉換、與許多文件格式的相容性、大量的自訂選項——這些都是為高效能情境而調整的主要功能。

開發人員可以利用Fastify的速度和多功能性,輕鬆創建動態PDF文件,透過整合FastifyIronPDF。 需要即時生成PDF的應用程式,包括那些即時創建帳單、報告或使用者特定文件的應用程式,是此組合的理想選擇。

這裡有一個基本示例:您配置一個Fastify伺服器以回應HTTP請求,然後使用IronPDF將Fastify路由中的HTML文本轉換為PDF。 這種配置展示了結合這兩個有效工具來創建可擴展且高效的網頁應用程式是多麼簡單,能夠創建動態PDF,保證優良效能和靈活性。

什麼是Fastify npm?

一個優化以速度和效率為目標的Node.js低開銷網頁框架,稱為Fastify。 Fastify以其極少的開銷和快速的處理速度而聞名,使可擴展的線上應用程式和API的建立變得簡單。 因為它使用JSON Schema提供基於架構的驗證,並允許異步程式設計,這保證了輸入和輸出的一致性和可靠性。 Fastify的插件架構鼓勵模組化和可維護的代碼基礎,使開發者輕鬆添加新功能。 Fastify通過包括清晰的錯誤信息、全面的日誌記錄和易於使用的API改善了開發人員的體驗。

fastify npm(對開發人員的運作方式):圖1 - Fastify:快速且低開銷的網頁框架,用於Node.js

由於其速度基準,使其成為開發者尋求構建可靠有效網頁應用程式的首選之一,它在所有可用的Node.js框架中速度最快。 Npm使安裝變得簡單,促進快速整合到項目中。 Fastify的設計目標是為現代網頁開發提供全面且高效的工具包。

Fastify是一個極其高效的Node.js網頁框架,目標是提供最小的開銷和頂級性能的快速網頁框架。 以下是它的一些獨特特性。 它內部將架構編譯為高效能函數。

Fastify的主要功能

高效能

在Node.js網頁框架中,Fastify具備最佳效能基準之一且經過速度優化。 它適合高流量應用程式,因為它能迅速且有效地回應查詢。

基於架構的驗證

Fastify使用JSON Schema驗證輸出回應和輸入請求。 這減少了運行時錯誤的可能性,並保證了數據完整性。

可擴充性

Fastify的插件架構使得增加和修改功能變得簡單。 插件通過將功能封裝起來,賦予Fastify插件團隊創建和重新利用功能的能力。

異步程式設計

完全支持async/await語法,這提供了一種清晰明瞭的方法來管理異步進程。

開發者友好

Fastify專案的清晰錯誤信息、全面的日誌記錄和簡單的API使開發和除錯變得更加簡單。

內建安全性

為安全應用程式的開發者提供現成工具和最佳實踐,並抵禦常見漏洞。

中間件相容性

兼容Express等中間件框架,使現有應用程式的轉移更加簡易。

TypeScript支持

因為其對TypeScript的頂級支持、內建類型和簡便整合,使其成為類型安全應用程式的絕佳選擇。

高效路由

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

自動程式碼生成

透過根據您的路由聲明自動生成TypeScript接口和JSON架構,減少了樣板代碼並提高了可維護性。

錯誤處理

集中化錯誤處理系統用於高效的錯誤檢測和管理。

靜態檔案提供

支持直接提供靜態文件,簡化前端組件的傳遞。

創建並配置Fastify Node.js JS

配置專案

首先,創建專案的新目錄並使用命令npm init -y初始化新的Node.js專案。 這將設置應用程式的基本結構。

安裝Fastify

npm install fastify
npm install fastify
SHELL

我們將安裝Fastify並將其添加到Fastify專案的package.json檔案。

設置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) => { ... });), 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作為您的網頁框架。 對於Node.js專案而言,IronPDF是一個強大的程式庫,可用於生成、修改和操作PDF文件。 以下是設置和使用Fastify與IronPDF的說明:

什麼是IronPDF?

IronPDF是一個強大的Node.js PDF程式庫,旨在從HTML信息創建高品質的PDF文件。 它在不犧牲原始網頁內容的情況下,加快了將HTML、CSS和其他JavaScript文件正確格式轉換為PDF的過程。 對於需要動態生成可打印文件,例如報表、發票和證書的網頁應用程式來說,這是一個非常有用的工具。

IronPDF的功能包括自定義頁面設置、頁眉、頁腳和添加字體及圖片的能力。 它可以處理複雜的佈局和樣式,保證每次輸出的PDF滿足要求。 此外,IronPDF還能管理在HTML內執行JavaScript,允許準確的動態和互動的內容呈現。

fastify npm(對開發人員的運作方式):圖4 - IronPDF for Node.js:Node.js PDF程式庫

IronPDF特性

從HTML生成PDF

將JavaScript,HTML和CSS轉換為PDF。 支持媒體查詢和響應式設計這兩個現代網絡標準。 為動態裝飾PDF帳單、報告和文件與HTML和CSS非常有用。

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('@ironsoftware/ironpdf');) 和 Fastify (const fastify = require('fastify')({ 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()方法將生成的PDF文件轉換為位元組後通過伺服器回應發送以準備下載。

fastify npm(對開發人員的運作方式):圖5 - 主控台輸出

啟動Fastify伺服器:使用start()函數來處理設置過程中可能發生的任何錯誤。在指定的埠(如3000)上運行Fastify伺服器 (fastify.listen(3000);)。這保證了伺服器已啟動且準備好處理傳入的請求。

fastify npm(對開發人員的運作方式):圖6 - Fastify伺服器與IronPDF整合將HTML轉換為PDF

結論

最後,通過將FastifyIronPDF結合在Node.js中,可以找到動態創建和服務PDF文件的強大解決方案。 開發者可以利用Fastify插件的輕量設計和高效路由功能,輕鬆創建和操作基於動態內容或用戶輸入的PDF,這與IronPDF的擴展功能相配合。 這種連接保證了網頁應用程式的可擴性和可靠性,顯著提高了PDF創建操作的速度和性能。

開發人員可以藉由Fastify的簡單設置和簡單路由處理,輕鬆添加複雜的PDF生成功能,以及IronPDF將HTML信息轉換為高質量PDF的能力。 這種組合提供了靈活性和定制選擇,以滿足各種應用需求,無論是創建發票、報告還是數據導出。

您可以在Node開發工具箱中增加OCR、條碼掃描、PDF創建、Excel互動以及其他許多功能,借助IronPDF授權和其提供的永久Lite授權僅需$799。

當專案特定的授權選擇得到很好地定義,開發者可以輕鬆選擇最佳模型。 有關更多授權信息,請訪問授權頁面。 IronPDF還提供詳細的文件和各種代碼示例以幫助開發者入門。 藉由這些功能,開發者可以成功和迅速地解決各種問題。

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

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

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

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me