Sequelize 实战:如何使用 Sequelize.js 进行 CRUD 操作

阅读时长 8 分钟读完

前言

Sequelize 是一个 Node.js ORM(Object-Relational Mapping) 工具,可以用来操作关系型数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等。Sequelize 提供了强大的模型定义和查询构建功能,可以帮助开发者快速、简单地进行数据库操作。

本文将介绍如何使用 Sequelize 进行 CRUD 操作,包括创建、读取、更新和删除数据。我们将会使用 MySQL 数据库作为示例,使用 Express 框架来搭建 Node.js 应用程序。

准备工作

在开始之前,需要先安装 Node.js 和 MySQL 数据库。另外,我们还需要安装 Sequelize 和 Express:

创建数据库和表

首先,我们需要创建一个名为 sequelize_demo 的数据库,并创建一个名为 users 的表。可以使用以下 SQL 命令来创建:

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

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

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

连接数据库

在 Node.js 中,可以使用 Sequelize 来连接数据库。我们需要提供数据库的连接信息,包括主机名、用户名、密码、数据库名和端口号。可以使用以下代码来连接数据库:

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

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

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

定义模型

在 Sequelize 中,模型用于表示数据库中的表。可以使用模型来创建、读取、更新和删除数据。在我们的示例中,我们需要定义一个名为 User 的模型,用于表示 users 表。

可以使用以下代码来定义模型:

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

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

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

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

在上面的代码中,我们使用 sequelize.define 方法来定义模型。该方法接受两个参数,第一个参数是模型的名称,第二个参数是一个对象,用于定义模型的属性。在我们的示例中,我们定义了 nameemailage 三个属性,分别表示用户的姓名、电子邮件地址和年龄。

创建数据

使用 Sequelize,可以使用模型来创建数据。可以使用以下代码来创建一个新用户:

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

在上面的代码中,我们使用 User.create 方法来创建一个新用户。该方法接受一个对象作为参数,用于指定新用户的属性。在创建成功后,该方法会返回一个 Promise 对象,该对象包含创建的用户对象。我们使用 user.toJSON() 方法将用户对象转换为 JSON 格式,并将其打印到控制台上。

读取数据

使用 Sequelize,可以使用模型来读取数据。可以使用以下代码来读取所有用户:

在上面的代码中,我们使用 User.findAll 方法来读取所有用户。该方法返回一个 Promise 对象,该对象包含所有用户对象的数组。我们使用 users.map(user => user.toJSON()) 方法将所有用户对象转换为 JSON 格式,并将其打印到控制台上。

可以使用以下代码来读取指定 ID 的用户:

在上面的代码中,我们使用 User.findByPk 方法来读取 ID 为 1 的用户。该方法返回一个 Promise 对象,该对象包含指定 ID 的用户对象。我们使用 user.toJSON() 方法将用户对象转换为 JSON 格式,并将其打印到控制台上。

更新数据

使用 Sequelize,可以使用模型来更新数据。可以使用以下代码来更新指定 ID 的用户:

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

在上面的代码中,我们使用 User.update 方法来更新 ID 为 1 的用户。该方法接受两个参数,第一个参数是一个对象,用于指定要更新的属性,第二个参数是一个对象,用于指定更新的条件。在更新成功后,该方法会返回一个 Promise 对象,我们可以在 then 方法中打印一条成功消息。

删除数据

使用 Sequelize,可以使用模型来删除数据。可以使用以下代码来删除指定 ID 的用户:

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

在上面的代码中,我们使用 User.destroy 方法来删除 ID 为 1 的用户。该方法接受一个对象作为参数,用于指定删除的条件。在删除成功后,该方法会返回一个 Promise 对象,我们可以在 then 方法中打印一条成功消息。

结语

本文介绍了如何使用 Sequelize 进行 CRUD 操作,包括创建、读取、更新和删除数据。通过本文的学习,我们可以了解到 Sequelize 的基本用法,并掌握如何使用 Sequelize 来操作 MySQL 数据库。

完整示例代码可以在我的 GitHub 仓库中找到:https://github.com/mayandev/sequelize-demo

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

纠错
反馈