Sequelize 模型的建立和使用

阅读时长 7 分钟读完

Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,它可以让我们使用 JavaScript 语言操作数据库,而不必直接使用 SQL 语句。在前端开发中,Sequelize 常常用于编写后端接口,可以方便地创建和操作数据库表。

本文将为您介绍如何使用 Sequelize 建立模型,并通过示例代码让您更容易理解。

准备工作

在开始之前,您需要安装 Node.js 和 Sequelize,可以使用命令行进行安装。

在安装 Sequelize 后,我们需要运行以下命令创建一个新的 Sequelize 项目。

初始化项目后,您需要创建一个数据库。

建立模型

在 Sequelize 中,模型是数据库中各个表的 JavaScript 对象映射,它包含了表的结构信息和操作数据库表的方法。

下面我们将以一个简单的用户表作为示例,演示如何建立并使用 Sequelize 模型。

定义模型

在定义模型之前,您需要先设置 Sequelize 的连接。

接着,在 models 目录下创建 user.js 文件,并写下以下代码定义一个用户模型。

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

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

在上述代码中,我们通过 sequelize.define() 方法定义了一个 User 模型,它具有四个字段:id、username、password 和 email,每个字段都有其相应的数据类型和约束。例如,id 字段是整数类型,是表的主键,自动递增。username 和 password 字段是字符串类型,不能为空。而 email 字段是字符串类型,允许为空。

数据库迁移

在定义模型后,我们需要使用 Sequelize CLI 提供的迁移命令生成数据库表并应用模型的变化。下面我们将创建一个新的迁移文件。

创建完毕后,打开新生成的迁移文件,编写以下代码:

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

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

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

在上述代码中,我们定义了一个 up() 方法和一个 down() 方法。up() 方法用于创建数据库表,down() 方法用于回滚操作。在 createTable() 方法中定义了 users 表的字段。需要注意的是,Sequelize 会自动给每一个表添加 createdAt 和 updatedAt 两个字段。

接下来,我们需要将迁移应用到数据库中。

运行完此命令后,Sequelize 将会根据迁移文件,创建相应的 users 表。

使用模型

现在我们已经成功地建立了一个 User 模型。下面,我们将使用该模型来完成一些数据库操作。

创建用户

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

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

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

上述代码中,我们通过 User.create() 方法创建了一个新用户。该方法将在数据库中创建一条记录,并返回一个 Promise 对象,我们可以使用 .then() 和 .catch() 分别处理成功和失败的情况。

查询用户

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

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

上述代码中,我们通过 User.findOne() 方法查询了用户,该方法是 Promise 对象,将返回一个满足条件的用户对象,或者 null。

更新用户

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

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

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

上述代码中,我们使用 User.update() 方法更新了用户的信息。该方法将返回受影响的行数,而不是更新的结果本身。

删除用户

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

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

上述代码中,我们使用 User.destroy() 方法删除了对应的用户。该方法将返回受影响的行数,而不是删除的结果本身。

总结

在本文中,我们介绍了如何使用 Sequelize 和 JavaScript 操作数据库。同时,我们也熟悉了一些基本的数据库操作。希望这篇文章能够帮助您更快地学习和使用 Sequelize。

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

纠错
反馈