Hapi.js 中的 ORM 框架

阅读时长 5 分钟读完

什么是 ORM ?

ORM 全称为 Object Relational Mapping,即对象关系映射。ORM 是实现数据持久化的技术之一,通过将数据模型转化为对象模型,将关系型数据库中的数据映射到面向对象编程语言中的对象。ORM 可以减少数据库 SQL 编写量、简化数据库操作。

在 Web 开发中,ORM 框架可以为后端提供一个简便的持久层,消除了复杂的 SQL 编写,使得开发人员专注于业务逻辑的实现,提高工作效率。本文将介绍 Hapi.js 中支持的 ORM 框架。

介绍 Hapi.js

Hapi.js 是一个由 Walmart 开发的 Web 框架,它提供了一个强大且可扩展的工具集,使得构建应用程序变得更加简单。和其他 Web 框架相比,Hapi.js 具备以下几个优点:

  • 路由器
  • 支持插件
  • 支持多种 REST API 风格
  • 集成测试的构建
  • 天生安全(默认开启 CORS,CSRF 保护)

因此,在 Web 技术快速迭代的今天,Hapi.js 开箱即用的特性为我们提供了快捷高效的开发方式。现在让我们来介绍在 Hapi.js 中支持的 ORM 框架。

介绍 Objection.js

Objection.js 是一个基于 Knex.js 的 ORM 框架,用于 Node.js 和浏览器端。它提供了多种功能,如基本 CRUD 操作、查询构建器、模型继承和分页查询。此外,Objection.js还提供了良好的 TypeScript 支持。我们来看一个简单的例子。

-- -------------------- ---- -------
----- - ----- - - ---------------------
----- ---- - ----------------

----- ---- - ------
  ------- -------------
  ----------- -
    --------- --------
    ----- -----------
    --------- ----------
  -
---

-----------------

----- ------ ------- ----- -
  ------ --- ----------- -
    ------ ----------
  -

  ------ --- ------------------ -
    ------ -
      ----- -
        --------- ----------------------
        ----------- -------
        ----- -
          ----- -------------
          --- -----------------
        -
      -
    --
  -
-

-------------- - -------

上述示例代码展示了如何在 Objection.js 中定义一个 Model,它与 database 中的 persons 表进行了映射。其中,relationMappings 描述了它与另一个 Model 的关系,并且将它们映射为表之间的 Relation。

介绍 Sequelize

Sequelize.js 是一个基于 Promise 的 Node.js ORM 框架,用于支持 PostgreSQL、MySQL、SQLite 和 Microsoft SQL Server 等关系型数据库。它支持多种查询方式(如原始查询、预处理查询、ORM 查询和 ORM 结合 SQL 的查询),提供多种模型定义方式(如 ES6 类模型、函数模型、模型注解模型和表模型等),并提供数据类型映射、事务控制、数据时间戳等功能。下面是一个简单的示例代码。

-- -------------------- ---- -------
----- - ---------- ------ --------- - - ---------------------

----- --------- - --- -----------
  -------- ---------
  -------- --------------
---

----- ---- ------- ----- --
-----------
  ---------- -
    ----- -----------------
    ---------- -----
  --
  --------- -
    ----- -----------------
    ---------- -----
  -
-- -
  ----------
  ---------- ------
---

------ -- -- -
  ----- -----------------
  ----- ---- - ----- -------------
    ---------- -------
    --------- -----
  ---
  ---------------------------
-----

上述代码描述了 Sequelize.js 中定义一个基础 Model 的过程。在这里,我们使用 User.init() 方法定义一个名为 User 的模型,并将其映射到用户表。我们还可以通过 associate() 方法定义一个 Model 在其与另一个 Model 之间的关系。

总结

通过本文介绍,我们了解了在 Hapi.js 中支持的 ORM 框架,并对它们的基本使用方法有了充分的了解。使用 ORM 框架可以使我们在构建 Web 应用程序时免去许多重复的 SQL 编写工作,使我们更专注于业务逻辑的实现。在开发过程中,要根据需求和后端语言技术选取合适的 ORM 框架,从而为团队开发进度和性能提供更好的支持。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6538d3867d4982a6eb1f001d

纠错
反馈