Hapi 应用中如何使用 Sequelize ORM 操作 MySQL 数据库

阅读时长 6 分钟读完

引言

Sequelize ORM 是一个基于 Node.js 的 ORM 框架,它支持多种数据库(包括 MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Oracle 等),并提供了基于 Promise 的 API。

本文主要介绍在 Hapi 应用中如何使用 Sequelize ORM 操作 MySQL 数据库。

安装与配置

首先需要安装 sequelizemysql2 两个包:

然后在 Hapi 应用中初始化 Sequelize:

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

其中,dialect 指定数据库类型,usernamepasswordhostportdatabase 分别是连接数据库的用户名、密码、主机名、端口和数据库名称。

定义模型

定义模型是 Sequelize ORM 的核心部分。在 Hapi 应用中,可以在 server/models 目录下创建相应的模型文件。例如,创建一个名为 user.js 的模型文件:

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

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

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

该模型定义了一个名为 user 的表,包含四个字段:idnameageemail

查询数据

Sequelize ORM 提供了丰富的查询方法,包括 findAllfindOnecountsummaxmin 等。这些方法都返回 Promise 对象,可以通过 then 方法获取查询结果。

以下是查询所有用户的示例代码:

该路由处理程序使用了 asyncawait 关键字,使得异步操作更加简洁明了。

除了使用简单的查询方法,Sequelize ORM 还支持使用原始 SQL 语句进行查询。以下是查询年龄大于 18 的用户的示例代码:

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

该路由处理程序使用 sequelize.query 方法执行原始 SQL 语句,并返回查询结果和元数据。

添加数据

添加数据可以使用模型的 create 方法。以下是添加一个用户的示例代码:

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

该路由处理程序使用 request.payload 获取 POST 请求的请求体,然后创建一个新的用户并返回。

修改数据

修改数据可以使用模型的 update 方法。以下是修改一个用户的示例代码:

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

该路由处理程序使用 request.params 获取 PUT 请求的参数,然后通过 id 修改相应的用户,并返回一个成功标识。

删除数据

删除数据可以使用模型的 destroy 方法。以下是删除一个用户的示例代码:

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

该路由处理程序使用 request.params 获取 DELETE 请求的参数,然后删除相应的用户,并返回一个成功标识。

总结

Sequelize ORM 是一个非常强大的 ORM 框架,它为开发者提供了丰富的 API,使得操作数据库变得更加简单和高效。本文介绍了在 Hapi 应用中如何使用 Sequelize ORM 操作 MySQL 数据库,包括定义模型、查询数据、添加数据、修改数据和删除数据等操作。希望本文对读者有帮助。

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

纠错
反馈