使用 Sequelize 连接 MySQL 数据库的方法

阅读时长 9 分钟读完

Sequelize 是 Node.js 中最流行的 ORM 框架之一,它支持多种数据库,其中包括 MySQL。使用 Sequelize 连接 MySQL 数据库非常简单,本文将介绍如何使用 Sequelize 连接 MySQL 数据库。

安装和配置 Sequelize

要使用 Sequelize 连接 MySQL 数据库,我们首先需要安装 Sequelize 和 MySQL 驱动程序。可以使用 npm 来安装它们:

此外,我们还需要安装 Sequelize CLI 工具。它可以帮助我们自动生成 Sequelize 的模型和迁移脚本。

安装完 Sequelize 和 CLI 后,我们需要创建一个 .sequelizerc 文件来配置 Sequelize CLI。打开你的项目根目录,创建一个名为 .sequelizerc 的文件,并按照以下方式进行配置:

这个配置告诉 Sequelize CLI 从 ./config/config.json 中读取数据库配置,把模型文件放在 ./models 目录下,把种子数据脚本放在 ./seeders 目录下,把迁移脚本放在 ./migrations 目录下。

最后,我们还需要创建一个名为 config.json 的文件,在其中配置数据库信息。在项目根目录下创建一个名为 config 的目录,然后创建 config.json 文件,并按照以下方式进行配置:

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

这是 Sequelize 连接 MySQL 数据库的常规配置,你需要根据自己的环境对其进行相应的修改。

连接数据库

配置完成后,我们可以使用以下代码连接数据库:

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

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

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

这里我们首先读取了 config.json 中的配置。然后使用 new Sequelize 创建一个 Sequelize 实例,传递数据库名称、用户名、密码和其他选项。最后使用 sequelize.authenticate() 来测试连接是否成功。

定义模型

一旦我们成功连接到数据库,我们就可以定义模型了。模型用于描述我们的数据结构,并将其映射到数据库中。例如,我们可以定义一个 User 模型:

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

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

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

这里我们首先导入 DataTypessequelize,然后使用 sequelize.define 创建一个名为 User 的模型。模型中包含 firstNamelastNameemail 字段,这些字段映射到数据库中的列。

执行迁移脚本

一旦我们定义了模型,我们需要使用迁移脚本将这些定义映射到数据库中的表。我们可以使用 Sequelize CLI 工具来自动生成迁移脚本。

首先,在命令行中切换到项目根目录,然后输入以下命令创建一个名为 create_users_table 的迁移脚本:

接下来,打开 create_users_table 迁移脚本,并修改 updown 方法以创建或删除 Users 表:

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

这个迁移脚本会创建一个名为 Users 的表,具有 idfirstNamelastNameemailcreatedAtupdatedAt 字段。createdAtupdatedAt 字段用于 Sequelize 自动记录每次记录创建和更新的时间。

最后,我们可以使用以下命令运行迁移脚本:

查询数据

现在我们已经连接到数据库并成功定义了模型,我们可以使用查询语言来读取和写入数据了。

例如,我们可以使用以下代码创建一个新用户:

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

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

这里,我们使用 User.sync() 来确保数据库中存在 Users 表。然后使用 User.create() 创建一个新的用户记录。最后,我们将用户记录转换为 JSON 并将其打印到控制台。

我们还可以使用查询语言来读取数据。例如,我们可以使用以下代码读取所有用户记录:

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

这个代码使用 User.findAll() 查询所有用户记录,并将其转换为 JSON 数组。

总结

在本文中,我们已经介绍了如何使用 Sequelize 连接 MySQL 数据库,并定义和使用模型查询数据库。这些技术将帮助你在 Node.js 中更轻松地使用数据库,从而更快地开发 Web 应用程序。

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

纠错
反馈