在 Hapi.js 中使用 Sequelize 操作 MySQL 数据库

在现代 Web 开发中,前端和后端已经越来越模糊。前端开发人员必须掌握后端开发技能以便于进行全栈开发。本文将介绍如何在 Hapi.js 中使用 Sequelize 操作 MySQL 数据库。

Hapi.js

Hapi.js 是一个 Node.js 框架,提供了创建 Web 应用程序所需的一系列工具和组件。 它具有插件架构,使它易于扩展和定制。可以使用 Hapi.js 构建任何类型的 Web 应用程序,从 API 到全栈应用程序。

Sequelize

Sequelize 是一个 Node.js ORM(对象关系映射器),允许 Node.js 应用程序轻松地管理 MySQL,PostgreSQL,SQLite 和 Microsoft SQL Server 数据库。 它提供了一个易于使用的 API,使开发人员可以使用 JavaScript 操作数据库而不需要编写 SQL 查询。

在 Hapi.js 中使用 Sequelize

在开始之前,确保已经安装了 Node.js、MySQL 以及 Sequelize 和 Hapi.js 。现在,我们使用 npm 实用程序安装这些软件包。

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

连接数据库

在使用 Sequelize 之前,需要创建一个数据库,并建立数据库连接。

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

上面的代码建立了一个通过用户名和密码访问本地 MySQL 数据库的连接。确保将这些值设置为自己的数据库凭据。

定义模型

在 Sequelize 中,一般称为模型(model)是 ORM 下数据库表的脚本对象。在 Hapi.js 应用程序中,您可以通过创建一个独立的文件来定义一个模型。对于我们的示例,我们将使用一个简单的 'users' 模型。

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

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

上面的代码定义了一个名为 'users' 的模型,包括 'id','firstName','lastName' 和 'email' 字段。其中 'id' 自动递增,'firstName' 和 'lastName' 是必填字段,并且 'email' 必须为有效的电子邮件地址。

定义路由

现在,我们已经定义了模型和数据库连接,让我们在 Hapi.js 应用程序中定义路由来处理与数据库的请求。以下是路由器定义示例。

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

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

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

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

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

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

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

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

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

首先,我们从我们的模型生成一个 'User' 对象。 接下来,我们调用全局 'sync()' 函数来同步模型和数据库模式。这将生成 'users' 表。

路线处理程序函数与每个操作相关联。 '/users' 路由处理程序将检索所有用户。'/users/{id}' 将检索指定的用户。'/users' POST 路由将创建新用户。'/users/{id}' PUT 路由将更新用户。'/users/{id}' DELETE 路由将删除用户。

运行应用程序

现在,我们已经定义了模型、数据库连接和路由,让我们执行我们的 Hapi.js 应用程序。使用以下命令启动应用程序。

---- ------

现在,应用程序将开始运行。如果一切正常,我们应该看到控制台输出 'Database & tables created!'。以下是通过 Postman 进行测试的 API 。

GET 请求 - http://localhost:3000/users

POST 请求 - http://localhost:3000/users

PUT 请求 - http://localhost:3000/users/1

DELETE 请求 - http://localhost:3000/users/1

结论

Hapi.js 和 Sequelize 是非常强大的工具,可帮助开发人员构建灵活的、可扩展的 Web 应用程序。Sequelize 简单易用,允许开发人员使用类似于 JavaScript 对象的代码来操作数据库。Hapi.js 作为 Node.js 的强大框架,提供了插件架构和额外的组件功能,可以快速创建应用程序。结合使用 Hapi.js 和 Sequelize,可以打造一个功能强大、可靠和易于维护的 Web 应用程序。

示例代码:https://github.com/hapijs/examples/tree/master/sequelize

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670a5600d91dce0dc8808ac8