如何在 Express.js 中使用 Sequelize ORM

阅读时长 7 分钟读完

前言:在 Web 开发中,ORM 对于数据库操作非常重要,使得开发者可以更加灵活地处理数据。本文将介绍如何在 Express.js 中使用 Sequelize ORM,以及一些常用的操作。

一、Sequelize 简介

Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,可以让开发者使用 Node.js 中的面向对象的方式去操作数据库。Sequelize 可以支持 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server 等多种关系型数据库,使用 Sequelize 可以让操作数据库变得更加灵活简单。

二、安装与配置 Sequelize

在开始使用 Sequelize 前,我们需要安装 Sequelize 和关联数据库的驱动程序。首先,在项目目录中打开控制台,运行以下命令进行安装:

接下来,根据需要安装一个或多个数据库驱动程序。例如,如果要使用 MySQL 数据库,则需要先安装 mysql2:

安装完毕后,我们需要在后端应用中初始化 Sequelize。在 Express.js 中,可以在 app.js 或者 index.js 文件中添加以下代码:

在上述代码中,我们通过 Sequelize 的构造函数创建了一个 sequelize 对象,并传递了数据库的相关信息。其中,'database' 为数据库名称,'username' 和 'password' 分别代表数据库访问用户名和密码,'localhost' 为数据库主机名,'mysql' 为数据库类型。

三、定义模型

在使用 Sequelize 操作数据库时,我们首先需要定义数据模型。在 Sequelize 中,每个数据模型对应一张数据库表,而每个属性对应表中的一个列。以下是一个示例数据模型:

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

在上述代码中,我们通过 sequelize.define 创建了一个名为 User 的数据模型,包含了 id、name、email 和 password 四个属性。其中,id 是数据模型的主键,在表中唯一标识一条记录。name、email 和 password 分别对应表中的三个列,其中 name 和 email 为必填项,password 为必填项且不允许为空。

四、CRUD 操作

在定义完数据模型后,我们就可以使用 Sequelize 执行 CRUD 操作了。以下是常见的操作示例:

1. 创建数据

使用 create 函数可以向数据库中创建一个新的记录:

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

在上述示例中,我们使用 User.create 创建了一个名为 '张三'、邮箱为 'zhangsan@example.com'、密码为 '123456' 的新用户,并将结果通过 console.log 打印出来。

2. 查询数据

使用 findAll 函数可以查询一个数据模型中的所有记录:

在上述示例中,我们使用 User.findAll 查询了所有用户的记录,并将结果通过 console.log 打印出来。

使用 findOne 函数可以查询符合条件的第一条记录:

在上述示例中,我们使用 User.findOne 查询名字为 '张三' 的用户,并将结果通过 console.log 打印出来。

使用 findByPk 函数可以根据主键查询一条记录:

在上述示例中,我们使用 User.findByPk 查询主键为 1 的用户,并将结果通过 console.log 打印出来。

3. 更新数据

使用 update 函数可以更新符合条件的所有记录:

在上述示例中,我们使用 User.update 将名字为 '张三' 的用户的密码更新为 '654321',并将结果通过 console.log 打印出来。

使用 save 函数可以更新单个记录:

在上述示例中,我们先使用 User.findByPk 根据主键查询出一条记录,然后将其密码改为 '654321',最后使用 save 函数将更新保存到数据库中,并将结果通过 console.log 打印出来。

4. 删除数据

使用 destroy 函数可以删除符合条件的所有记录:

在上述示例中,我们使用 User.destroy 删除名字为 '张三' 的用户,并将结果通过 console.log 打印出来。

使用 destroy 函数可以删除单个记录:

在上述示例中,我们先使用 User.findByPk 根据主键查询出一条记录,然后使用 destroy 函数将其删除,并将结果通过 console.log 打印出来。

五、总结

本文介绍了如何在 Express.js 中使用 Sequelize ORM 进行数据库操作,包括了 Sequelize 的安装与配置、数据模型的定义以及增删改查等常用操作。通过本文的学习,相信读者已经掌握了 Sequelize 的基本使用方式,可以在实际项目中灵活地运用 Sequelize 来进行数据操作。

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

纠错
反馈