Express.js 中的 ORM 框架 Sequelize 使用方法

阅读时长 7 分钟读完

在大型的后端应用程序开发中,数据存储和管理是非常重要的一环。ORM (Object-Relational Mapping) 框架旨在简化这一过程,它能够将关系数据库中的关系表映射成对象,并且在进行 CRUD 操作时,不需要编写直接的 SQL 语句。

而在基于 Node.js 的后端框架 Express.js 中,Sequelize 是一个非常流行的 ORM 框架。在本文中,我们将深入探讨 Sequelize 的使用方法,以及它如何帮助我们优化后端数据存储和访问。

安装 Sequelize

在使用 Sequelize 之前,需要先将其安装到 Express.js 项目中。可以使用 npm 包管理器进行安装,具体操作如下:

同时,也需要安装相关的数据库驱动程序。例如,使用 MySQL 作为数据库,可以通过以下命令安装 MySQL 驱动:

如果使用的是其他 SQL 数据库,例如 PostgreSQL、SQLite 或者 Microsoft SQL Server,可以使用相应的驱动程序替换 mysql2 模块。

基础概念

在使用 Sequelize 之前,需要了解一些基本概念。下面是一些常见术语的解释:

  • 模型 (Model) - 类似于关系数据库中的表,它描述了数据在数据库中的结构和关系。
  • 实例 (Instance) - 模型的一行数据,在 Sequelize 中也被称为记录或者文档。
  • 属性 (Attribute) - 模型的一列数据,在 Sequelize 中也被称为字段或者属性。
  • 同步 (Synchronize) - 将模型和表之间的结构同步,使 Sequelize 中的模型和关系数据库中的表一致。
  • 迁移 (Migration) - 在发布应用程序之前,可以使用迁移工具修改数据库模型的结构。
  • 查询 (Query) - 在 Sequelize 中进行 CRUD 操作的方式,它是通过模型实例的方法实现的。

配置 Sequelize

在使用 Sequelize 之前,需要先创建一个 Sequelize 实例,以便与关系数据库进行通信。以下是创建 Sequelize 实例的示例代码:

在这个示例中,我们创建了一个 Sequelize 实例,并配置了 MySQL 数据库的信息。其中,database_name 是数据库的名称,username 是连接数据库时的用户名,password 是密码。另外,host 是连接数据库的地址,dialect 是指定数据库的类型,如果使用的是 MySQL 数据库,则需要将选项设置为 mysql

定义模型

在 Sequelize 中,可以通过定义模型来描述数据在数据库中的结构和关系。以下是一个示例:

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

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

在这个示例中,我们定义了一个名为 User 的模型,并定义了四个属性:firstNamelastNameemailpassword。注意到每个属性都指定了数据类型,并包含一些选项,例如 allowNullunique

同步模型

在 Sequelize 中,可以通过同步模型来创建或者修改数据库表结构。以下是一个示例:

在这个示例中,我们调用了 sequelize.sync() 方法来同步模型和数据库表结构。由于这个方法是异步的,在调用它前面加上 await 关键字,可以让代码以同步的方式执行。

添加数据

在 Sequelize 中,可以通过模型实例的 create() 方法来添加数据。以下是一个示例:

在这个示例中,我们创建了一个名为 user 的实例,并将其插入到 User 模型中。在 create() 方法中,我们指定了 user 实例的属性。

查询数据

在 Sequelize 中,可以通过模型实例的一系列方法来查询数据。以下是一些常见的查询操作:

查询单条记录

在这个示例中,我们使用 findOne() 方法查询 User 模型中 id 为 1 的记录。

查询多条记录

在这个示例中,我们使用 findAll() 方法查询 User 模型中的所有记录。

条件查询

在这个示例中,我们使用 findAll() 方法查询 User 模型中 firstNameJohn 的记录。

分页查询

在这个示例中,我们使用 findAll() 方法查询 User 模型中第 10 到 15 行记录。

排序查询

在这个示例中,我们使用 findAll() 方法查询 User 模型中按照 firstName 字段升序排列的所有记录。

更新数据

在 Sequelize 中,可以使用模型实例的 update() 方法来更新数据。以下是一个示例:

在这个示例中,我们使用 update() 方法更新 user 实例的 firstNamelastName 属性。

删除数据

在 Sequelize 中,可以使用模型实例的 destroy() 方法来删除数据。以下是一个示例:

在这个示例中,我们使用 destroy() 方法删除 user 实例在 User 模型中对应的记录。

总结

在本文中,我们学习了 Sequelize 的基本概念和用法,包括如何定义模型、同步模型、添加数据、查询数据、更新数据和删除数据。Sequelize 是一个非常强大的 ORM 框架,可以帮助我们简化后端数据存储和访问的过程。希望本文对读者有所帮助。

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

纠错
反馈