通过实例了解 Sequelize 的 API 操作

阅读时长 6 分钟读完

Sequelize 是一个基于 Node.js 的 ORM 框架,它可以帮助我们快速方便地操作数据库。它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等,而且提供了一系列强大而丰富的 API,可以方便地实现数据库的增删改查操作。

在本文中,我们将通过实例了解 Sequelize 的 API 操作,希望能够帮助前端开发者更好地理解和应用 Sequelize。

安装和使用 Sequelize

在开始学习 Sequelize 之前,我们需要安装 Sequelize 和对应的数据库驱动,以便在 Node.js 中使用 Sequelize。

首先,我们需要通过 npm 安装 Sequelize:

然后,安装对应的数据库驱动:

此外,我们还需要在 Node.js 中引入 Sequelize:

现在,我们已经完成了 Sequelize 的安装和引入,可以开始实现数据库的操作了。

数据库连接

在使用 Sequelize 操作数据库之前,我们需要先建立数据库的连接。在 Sequelize 中,我们可以使用 Sequelize 构造函数创建一个数据库连接对象。

其中,database_nameusernamepassword 分别是数据库名称、用户名和密码,host 是数据库服务器地址,dialect 是数据库类型,port 是数据库端口号。

除此之外,我们还可以在连接对象的 define 属性中设置一些默认值,比如关闭默认添加的 createdAtupdatedAt 字段。

定义模型

在 Sequelize 中,我们需要先定义模型,然后才能进行数据库的增删改查操作。模型相当于一个数据表的抽象,包含了该数据表的各个字段、数据类型等信息。

下面是一个简单的模型定义示例:

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

在该示例中,我们定义了一个名为 user 的模型,包含了 idusernameagecreatedAtupdatedAt 五个字段。

其中,id 字段是一个自增的整数,为主键;username 字段是一个长度不超过 50 的字符串,不允许为空,而且要保证唯一;age 字段是一个整数,有默认值 18;createdAtupdatedAt 字段分别表示创建时间和更新时间,使用 Sequelize 提供的 DATE 类型。

数据库操作

有了模型定义后,我们可以开始进行数据库的增删改查操作了。这里我们以 MySQL 数据库为例,介绍一些常用的 Sequelize 操作。

插入数据

我们可以使用 create 方法向数据库中插入一条数据:

在该示例中,我们新建了一个 username'xiaoming'age18 的用户,并将其插入到数据库中。如果插入成功,会返回插入的数据对象;如果插入失败,则会抛出一个错误。

查询数据

我们可以使用 findAll 方法查询一组数据,或使用 findOne 方法查询单条数据:

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

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

在这两个示例中,我们分别查询了 age18 的所有用户,并按照创建时间倒序排序;以及查询 username'xiaoming' 的用户。查询成功后,会返回查询到的数据对象,否则返回 null

更新数据

我们可以使用 update 方法更新数据:

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

在该示例中,我们更新了 username'xiaoming' 的用户的 age 字段,将其修改为 20。更新成功后,会返回一个包含一个元素的数组,其中第一个元素表示受影响的行数,如果大于 0,则表示更新成功。

删除数据

我们可以使用 destroy 方法删除数据:

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

在该示例中,我们删除了 username'xiaoming' 的用户。删除成功后,会返回一个数字,表示被删除的行数,如果大于 0,则表示删除成功。

总结

通过实例了解 Sequelize 的 API 操作,我们可以发现 Sequelize 具有操作简单、灵活性高等特点,能够大大简化我们的数据库操作。在实际项目中,我们可以根据需求灵活地运用 Sequelize 的 API,提高开发效率和代码质量。

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

纠错
反馈