跳至页脚内容
NODE 帮助

LoopBack node js(开发者如何使用)

通过 IronPDF 的流畅集成提供了一个完整的解决方案,用于在 LoopBack 框架应用程序中动态生成 PDF。IronPDF 是一个用于以编程方式创建 PDF 文档的库,结合使用 LoopBack,这是一个用于构建 API 的 Node.js 框架。具有模型创建、数据源验证、远程方法和访问控制等功能,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 并将它们连接到不同数据源的过程。 凭借 LoopBack,一个 StrongLoop 的产品,开发人员可以轻松设计出可伸缩且适应性强的应用程序。从根本上来说,LoopBack 是在 express 框架之上构建的,并且基于模型驱动开发方法论,这让程序员可以创建表示其应用程序域的数据模型。 关系数据库如 MySQL 和 PostgreSQL,NoSQL 数据库如 MongoDB,以及外部 REST API 和 SOAP 服务,都可以轻松与这些模型集成。

LoopBack 独特之处在于它通过基于给定模型自动生成 RESTful 端点来简化 API 开发过程。 此外,LoopBack 内置了验证、权限和认证的支持,让程序员可以保护其 API 并保证数据的完整性。 因为 LoopBack 的中间件架构基于 Express.js,所以它具有可扩展性和灵活性,使得开发人员可以与已有中间件一起使用,或者创建自定义中间件来满足特定需求。

无论您是在创建一个简单的 REST API 还是一个复杂的微服务架构,LoopBack 都具备加速开发并生成可靠、可扩展解决方案所需的能力和工具。 由于其详实的文档和活跃的社区,开发人员在创建先进的在线和移动应用程序时经常选择它。

 LoopBack node js (How It Works For Developers): 图 1 - LoopBack

LoopBack 的特性

  • 模型驱动架构:通过允许开发人员通过基于架构的方法来定义数据模型,LoopBack 支持模型驱动开发。 可以用模型来表示多种数据源,包括数据库、REST API 和 SOAP 服务。
  • 数据源无关性:LoopBack 支持多种数据源,包括关系数据库(MySQL、PostgreSQL)、NoSQL 数据库(MongoDB)、外部 REST API 和 SOAP 服务。
  • 自动 REST API 生成:LoopBack 使用预定义的模型自动创建 API 探索器中的 RESTful API 端点,减少样板代码并加快开发速度。
  • 内置身份验证和授权支持:LoopBack 提供了这些功能的内置支持,允许开发人员在他们的 API 中整合基于角色的访问控制(RBAC)、用户身份验证和其他安全措施。
  • 中间件和远程方法:开发人员可以使用 LoopBack 提供中间件和远程方法,以改变 API 端点的行为。 虽然远程方法提供了可以通过 HTTP 远程调用的自定义功能,但中间件功能可以拦截并修改请求和响应。
  • LoopBack 命令行接口(CLI):LoopBack 具有强大的 CLI 工具,简化了创建模型和控制器、构建新项目及执行迁移等常见活动。
  • 与 LoopBack 组件集成:LoopBack 促进了组件的使用,这些组件是可重用的模块,提供电子邮件发送、文件存储和身份验证功能。 这使得开发人员无需从头开始为他们的应用程序添加新功能。
  • LoopBack 探索器:开发人员能够使用 LoopBack 的内置 API 探索器工具以交互方式检查和测试 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。 模型可以通过多种数据结构和来源进行支持,代表应用程序中的对象。 例如,运行以下命令以生成一个名为 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 探索器工具,在 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 (How It Works For Developers): 图 2 - LoopBack 输出

开始

我们将首先创建一个示例应用程序,该应用程序使用 LoopBack Node.js 和 IronPDF 创建具有动态生成信息的 PDF 文档。 这是一个包含详细说明的分步手册。

什么是 IronPDF? [IronPDF](/nodejs/) 是一个应用程序库,开发它是为了简化创建、编辑和维护 PDF。 通过此应用程序,开发人员可以从 HTML 文档中提取文本和图像、应用页眉和水印、合并多个 PDF 文档,以及执行多种其他活动。 IronPDF 的用户友好型 API 和全面的文档,使开发人员能够轻松自动创建高质量的 PDF 文档。 无论是用于准备发票、报告还是文档,IronPDF 都提供所有功能和能力来改善文档工作流程并提供一流的用户体验。 ![ LoopBack node js (How It Works For Developers): 图 3 - IronPDF](/static-assets/pdf/blog/loopback-node-js/loopback-node-js-3.webp) ### IronPDF的功能 - **HTML 转 PDF** 是一个简单快捷的过程,可用于任何 HTML 内容,包括 CSS 和 JavaScript。 - **PDF 文件合并**:为简化文档管理任务,将多个 PDF 文档合并为一个 PDF 文件。 - **文本和图像提取**:从 PDF 文件中提取文本和图像,使其可用于进一步的数据分析或处理。 - **水印添加**:对于安全或品牌宣传原因,您可以在 PDF 页上添加文本或图像水印。 - **包含页眉和页脚**:在 PDF 文档的页眉和页脚中包含自定义消息或页码。 #### 安装IronPDF 要启用IronPDF功能,请使用节点包管理器安装所需的Node.js包。 ```bash npm install @ironsoftware/ironpdf ``` ## 将 LoopBack 与 IronPDF Node.js 整合 在创建的控制器文件中实现以下逻辑(`report.controller.ts` 或 `report.controller.js`)以使用 IronPDF 创建 PDF 文档: ```ts 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 { // HTML content to be converted to PDF const htmlContent = '

Hello, IronPDF!

'; // 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; } } ``` `ReportController` 负责 Report 实例的创建和 PDF 生成。 HTML 内容使用 IronPDF 转换为 PDF 缓冲区,并通过 `generatePdf` 方法返回。 `generatePdf` 函数使用 IronPDF 将 HTML 呈现为 PDF。 LoopBack 控制器轻松处理此集成。 定义 `GET` 端点,`/generate-pdf`,可以从客户端接收 HTML 内容。 我们在端点内使用 IronPDF 库,将提供的 HTML 信息转换为 PDF。 具体来说,我们使用 `pdf.saveAsBuffer()` 生成 [PDF 文件](/nodejs/examples/using-html-to-create-a-pdf/) 的二进制缓冲区,并使用 `IronPdf.PdfDocument.fromHtml(htmlContent)` 从 JSON 文件构建 PDF 对象。然后将此缓冲区与适当的 MIME 类型(`application/pdf`)返回给客户端。 在创建 PDF 时遇到的任何问题都由在 3000 端口监听的服务器检测到并记录。客户端收到的响应是 500 状态码。 这个配置使得从 HTML 内容创建动态 PDF 成为可能,这在为 Web 应用程序创建账单、报告或其他文档时很有用。 ![ LoopBack node js (How It Works For Developers): 图 4 - PDF 输出](/static-assets/pdf/blog/loopback-node-js/loopback-node-js-4.webp) ## 结论 最后,将 IronPDF 与 LoopBack 4 的整合为在线应用程序开发提供了一个强大的组合。 使用 LoopBack 4,开发人员可以轻松创建 RESTful API,提供一个强大的框架,使他们可以集中精力于业务逻辑,而不是样板代码。 而 IronPDF 则提供了流畅的 PDF 生成功能,使从 HTML 文本创建动态 PDF 文档成为可能。 此外,LoopBack 4 和 IronPDF 的灵活性和易用性简化了开发流程,使开发人员能够快速制作高质量的应用程序。 由于 LoopBack 4 负责 API 后端访问控制,而 IronPDF 处理 PDF 创建,开发人员可以集中精力于满足业务需求并提供出色的用户体验。 We can guarantee feature-rich, high-end software solutions for clients and end users by integrating [IronPDF](/) and [eight other libraries](ironsuite) into your development stack. 此外,这个强大的基础将优化流程、后端系统和项目。 这些技术起价为每个 $799,并由于其全面的文档、活跃的在线开发者社区和频繁的更新而成为现代软件开发项目的良好选择。

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。