跳過到頁腳內容
NODE 說明

LoopBack node js(開發者的使用方法)

透過IronPDF(一個用於程式化創建PDF文件的程式庫)與LoopBack(一個用於構建API的Node.js框架)的平滑整合,為在LoopBack框架應用中動態生成PDF提供了一個完整的解決方案。借助模型創建、數據源驗證、遠程方法和訪問控制等功能,LoopBack框架使API/網頁開發變得更容易,而IronPDF則通過更精密的PDF製作功能來改善它。

開發人員可通過這一整合即時從包括外部API和數據庫在內的多個渠道提取數據來創建PDF。 這讓創建定制記錄或業務領域對象以滿足專案需求成為可能,如發票、證書、報告等。 因為LoopBack是非同步的,它很好地補充了IronPDF的功能來處理PDF生成任務,而不干擾事件循環,保證了響應性和最佳性能。

要開始使用LoopBack和IronPDF,請使用LoopBack的CLI工具創建一個新項目,並使用npm將IronPDF作為依賴項安裝。 利用LoopBack的中介軟件和遠端方法功能,以回應客戶端請求來即時創建PDF,使集成簡單。 總的來說,這一整合賦予開發者在LoopBack應用中高效處理各種文檔生成需求的能力。

什麼是LoopBack Node.js?

名為LoopBack的強大Node.js框架旨在簡化API創建和將其連接到不同數據源的過程。 藉助StrongLoop的產品LoopBack,開發者能輕鬆設計可擴展和靈活的應用。從根本上說,LoopBack是基於express框架建成的,並且是基於模型驅動開發的方法論,這讓程式設計師可以創建象徵其應用領域的數據模型。 諸如MySQL和PostgreSQL等關聯性數據庫、MongoDB等NoSQL數據庫,以及外部REST API和SOAP服務,都可以輕鬆與這些模型整合。

LoopBack的獨特之處在於它通過基於提供的模型自動生成RESTful端點來簡化API開發過程。 此外,LoopBack還提供內建的驗證、許可和身份驗證支持,使程式設計師得以保障其API和確保數據完整性。 由於LoopBack的中介軟件架構基於Express.js,它是可擴展和靈活的,使開發者能夠使用現有中介軟件或創建自定義中介軟件以滿足獨特需求。

無論您是在創建一個簡單的REST API還是複雜的微服務架構,LoopBack擁有加速開發所需的能力和工具,並生產可靠、可擴展的解決方案。 由於其詳實的文檔和活躍的社群,開發者在創建尖端網上和移動應用時經常選擇它。

LoopBack node js(如何為開發者工作):圖1 - LoopBack

LoopBack的功能

  • 模型驅動架構:通過使開發者能夠通過基於模式的方法定義數據模型,LoopBack支持模型驅動的開發。 多種數據源,包括數據庫、REST API和SOAP服務,都可以用模型來表示。
  • 數據源無關性:LoopBack支持的數據源包括關聯性數據庫(MySQL、PostgreSQL)、NoSQL數據庫(MongoDB)、外部REST API和SOAP服務。
  • 自動化REST API生成:LoopBack利用預定義的模型自動在API Explorer中創建RESTful API端點,減少樣板代碼並加速開發。
  • 內建身份驗證和授權支持:LoopBack提供這些功能的內建支持,使開發者能將基於角色的訪問控制(RBAC)、用戶身份驗證和其他安全措施集成到其API中。
  • 中介軟件和遠程方法:開發者可以使用LoopBack提供中介件和遠程方法來改變API端點的行為。 當遠程方法提供可通過HTTP遠程調用的自定義功能時,中介功能可以攔截並修改請求和響應。
  • LoopBack命令行界面(CLI):LoopBack附帶一個功能強大的CLI工具,使創建模型和控制器、構建新項目和執行遷移等典型活動更輕鬆。
  • 與LoopBack組件整合:LoopBack促進了組件的使用,這些是可重用的模塊,提供電子郵件投遞、文件存儲和身份驗證功能。 這節省了開發者為其應用添加新功能時從頭開始的時間。
  • LoopBack Explorer:開發者能夠使用LoopBack集成的API Explorer工具互動地檢查和測試API端點。 這使得故障排除和理解API的可能性更加容易。

創建和配置LoopBack Node.js JS

您可以使用以下程序在Node.js中設置和構建LoopBack應用程序:

安裝LoopBack CLI

安裝LoopBack命令行界面(CLI)是第一步,它提供用於構建和管理LoopBack應用的資源。使用npm全局安裝它:

npm install -g @loopback/cli
npm install -g @loopback/cli
SHELL

創建一個新的LoopBack應用

使用CLI搭建一個全新的核心LoopBack應用。 打開您希望構建應用的目錄並在那裡執行它:

lb4 app
lb4 app
SHELL

提供關於您的應用的信息,比如其名稱和目錄以及您希望啟用的功能,只需遵循提示即可。

您將被要求提供以下信息:

  1. 專案名稱:輸入您的應用名稱,例如,my-loopback-app
  2. 專案描述:可以選擇性地描述您的應用。
  3. 專案根目錄:接受默認或指定一個不同的目錄。
  4. 應用類名:接受默認的Application
  5. 啟用prettier:選擇是否啟用Prettier來格式化代碼。
  6. 啟用TSLINT:選擇是否啟用TSLint來進行代碼檢查。
  7. 啟用Mocha:選擇是否啟用Mocha來運行測試。

CLI將生成專案結構並安裝必要的依賴項。

查看專案結構

您的專案目錄將具有以下結構:

my-loopback-app/
├── src/
│   ├── controllers/
│   ├── models/
│   ├── repositories/
│   ├── index.ts
│   ├── application.ts
│   └── ...
├── package.json
├── tsconfig.json
└── ...

定義模型

要指定您的數據結構,請手動開發模型或使用LoopBack CLI。 Model可以受支持多種數據結構和來源,表示您的程式中的物件。 例如,運行以下命令生成一個名為Product的新模型:

lb4 model
lb4 model
SHELL

要指定模型的屬性和連接,只需按照指示即可。

創建控制器

為處理創建PDF文件的請求,創建一個新的控制器。 要創建一個新的控制器,請在LoopBack CLI中使用以下命令:

lb4 controller
lb4 controller
SHELL

要定義控制器的名稱和相關模型,只需依照提示。假設我們想將控制器的屬性名稱與Report模型關聯並稱呼它ReportController。

定義數據來源

確定模型將要通訊的數據來源。 LoopBack支持許多數據庫,如MySQL、PostgreSQL、MongoDB等。 要配置您的數據來源,可以更新datasources.json文件或使用LoopBack CLI。

探索LoopBack

使用內建的API Explorer工具,位於http://localhost:3000/explorer,來調查LoopBack的功能。 您可以在這裡探索並測試您的API端點。

Ping控制器範例代碼

import {inject} from '@loopback/core';
import {
  Request,
  RestBindings,
  get,
  response,
  ResponseObject,
} from '@loopback/rest';

/**
 * OpenAPI response for ping()
 */
const PING_RESPONSE: ResponseObject = {
  description: 'Ping Response',
  content: {
    'application/json': {
      schema: {
        type: 'object',
        title: 'PingResponse',
        properties: {
          greeting: {type: 'string'},
          date: {type: 'string'},
          url: {type: 'string'},
          headers: {
            type: 'object',
            properties: {
              'Content-Type': {type: 'string'},
            },
            additionalProperties: true,
          },
        },
      },
    },
  },
};

/**
 * A simple controller to bounce back http requests
 */
export class PingController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  // Map to `GET /ping`
  @get('/ping')
  @response(200, PING_RESPONSE)
  ping(): object {
    // Reply with a greeting, the current time, the url, and request headers
    return {
      greeting: 'Hello from LoopBack',
      date: new Date(),
      url: this.req.url,
      headers: Object.assign({}, this.req.headers),
    };
  }
}

以上代碼的輸出。

LoopBack node js(如何為開發者工作):圖2 - LoopBack輸出

入門

我們將首先創建一個利用LoopBack Node.js和IronPDF的範例應用來創建一個包含動態生成信息的PDF文件。 這是一個包含詳細解釋的分步手冊。

什麼是IronPDF?

一個名為IronPDF的應用程式庫專為使創建、編輯和維護PDF更簡單而設計。 藉由此應用,開發者可以從HTML文檔中提取文本和圖像,應用標題和水印,合併多個PDF文檔,並執行多種其他活動。 感謝IronPDF易於使用的API和全面的文檔,開發者可以輕鬆自動創建高質量的PDF文檔。 無論在各種情境中使用,IronPDF都提供了改善文檔工作流程和提供一流使用者體驗所需的所有功能和能力,無論是在準備發票、報告或文檔時。

LoopBack node js(如何為開發者工作):圖3 - IronPDF

IronPDF特性

  • HTML轉PDF是一個簡單且快速的過程,可用於任何HTML內容,包括CSS和JavaScript。
  • PDF文件合併:將多個PDF文檔合併到一個PDF文件中,從而使文檔管理工作更輕鬆。
  • 文本和圖像抽取:從PDF文件中取出文本和圖像,使其可用於進一步數據分析或處理。
  • 加水印:出於安全或品牌原因,您可以在PDF頁面上添加文本或圖片水印。
  • 包括頁眉和頁腳:PDF文檔的頁眉和頁腳允許您包括定制消息或頁碼。

安裝IronPDF

要啟用IronPDF功能,使用節點套件管理器安裝必要的Node.js套件。

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

將LoopBack與IronPDF Node.js整合

在創建的控制器文件中實施以下邏輯(report.controller.js)來使用IronPDF創建PDF文件:

import {inject} from '@loopback/core';
import {Request, RestBindings, get, response} from '@loopback/rest';
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF license key, if needed
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({licenseKey: ''});

/**
 * Controller handling PDF generation
 */
export class ReportController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  @get('/generate-pdf', {
    responses: {
      '200': {
        description: 'PDF file',
        content: {'application/pdf': {schema: {type: 'string', format: 'binary'}}},
      },
    },
  })
  async generatePdf(): Promise<Buffer> {
    // HTML content to be converted to PDF
    const htmlContent = '<html><body><h1>Hello, IronPDF!</h1></body></html>';

    // Generate PDF from HTML
    const pdf = await IronPdf.PdfDocument.fromHtml(htmlContent);

    // Get the PDF as a Buffer
    const pdfBuffer = await pdf.saveAsBuffer();

    // Return the PDF buffer to serve as a downloadable file
    return pdfBuffer;
  }
}

報告實例的創建和PDF生成由ReportController處理。 HTML內容使用IronPDF轉換成PDF緩衝並由generatePdf方法返回。 generatePdf函數使用IronPDF渲染HTML作為PDF。 LoopBack控制器輕鬆處理這一整合。 然後,通過定義一個/generate-pdf來接收來自客戶端的HTML內容。 我們藉由使用IronPDF程式庫,在端點內部將提供的HTML信息轉換為PDF。

具體說來,我們利用pdf.saveAsBuffer()生成PDF文件的二進制緩衝區,並使用application/pdf)返回給客戶端。 創建PDF時發生的任何問題將由監聽在3000端口的服務器檢測並記錄,客戶端會收到一個500狀態碼的響應。 此配置使得從HTML內容創建動態PDF變得可能,這在為網頁應用創建帳單、報告或其他文檔時很有用。

LoopBack node js(如何為開發者工作):圖4 - PDF輸出

結論

最後,IronPDF與LoopBack 4的整合為網絡應用開發提供了一個強大的組合。 在LoopBack 4中,開發人員可以輕鬆使用一個強力框架來創建RESTful API,讓他們專注於業務邏輯而非樣板代碼。 然而,IronPDF具備流暢的PDF生成功能,使得從HTML文本創建動態PDF文檔成為可能。

此外,LoopBack 4和IronPDF的靈活性和易用性簡化了開發過程,讓開發人員能迅速生成高品質的應用。 因為LoopBack 4管理API後端訪問控制,IronPDF則處理PDF創建,開發人員可以專注於滿足業務需求和提供卓越的用戶體驗。

通過將<IronPDF和其他八個庫集成到您的開發堆棧中,我們可以保證為客戶和最終用戶提供功能豐富的高端軟件解決方案。 此外,這一強大的基礎將提升流程、後端系統和計畫。 每個從$799起,這些技術因其完備的文檔、活躍的在線開發者社區和頻繁更新被認為是當代軟件開發項目的優良選擇。

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