Node.js 中使用 Sequelize ORM 操作 MySQL 数据库 —— 快速入门指南

阅读时长 7 分钟读完

介绍

Sequelize 是一个 Node.js ORM(Object-Relational Mapping)工具,它可以帮助我们用面向对象的方式来操作数据库。Sequelize 支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等,并提供了强大的查询方式,可以帮助我们轻松地进行 CRUD 操作。本文将基于 MySQL 数据库,简单介绍如何在 Node.js 中使用 Sequelize ORM 来操作数据库。

准备工作

在使用 Sequelize 之前,我们需要先安装 Node.js 和 MySQL 数据库,并创建好相应数据库中的表。

然后我们需要在 Node.js 项目中安装 Sequelize 和 mysql2 依赖:

配置 Sequelize

在项目中创建一个 sequelize.js 文件,用于配置 Sequelize。下面是一个简单的 Sequelize 配置示例:

上述代码使用 Sequelize 的构造函数创建了一个连接 MySQL 数据库的实例,其中 databaseusernamepassword 分别是要连接的数据库名称、用户名和密码,host 是 MySQL 数据库的主机名,dialect 是数据库类型。对于更详细的 Sequelize 配置,请参考 Sequelize 文档

定义模型

在 Sequelize 中,我们需要定义模型来表示数据库中的表,用于对表进行操作。每个模型对应一个表,模型中定义的属性对应表中的字段。

下面是一个简单的示例,用于定义 User 模型:

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

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

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

上述代码中,我们使用 sequelize.define 方法来创建一个名为 user 的模型,其中包含 idnameage 三个属性,对应表中的字段。id 是一个自增的整数类型,作为表的主键,nameage 分别是字符和整数类型。timestamps 设置为 false 表示不需要自动生成 createdAtupdatedAt 字段。对于更详细的模型定义,请参考 Sequelize Model 文档

CRUD 操作

在 Sequelize 中,我们可以使用模型的方法来进行 CRUD 操作。

添加数据

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

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

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

上述代码中,我们使用 User.create 方法来创建一条新数据。在 create 方法的参数中,我们传入了一个包含 nameage 属性的对象,对应表中的字段。create 方法返回一个 Promise,成功时输出 创建成功,失败时输出错误信息。

查询数据

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

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

上述代码中,我们使用 User.findAll 方法来查询所有数据。findAll 方法返回一个 Promise,成功时输出所有数据的数组,失败时输出错误信息。

我们也可以使用 User.findByPk 方法来根据主键查询数据:

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

----- -- - --

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

上述代码中,我们使用 User.findByPk 方法来根据主键查询数据。findByPk 方法返回一个 Promise,成功时输出查询结果,失败时输出错误信息。

修改数据

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

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

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

上述代码中,我们使用 User.update 方法来更新数据。update 方法的第一个参数是要更新的数据,第二个参数包含一个 where 对象,用于指定更新的条件。update 方法返回一个 Promise,成功时输出 更新成功,失败时输出错误信息。

删除数据

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

----- -- - --

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

上述代码中,我们使用 User.destroy 方法来删除数据。destroy 方法的参数包含一个 where 对象,用于指定删除的条件。destroy 方法返回一个 Promise,成功时输出 删除成功,失败时输出错误信息。

总结

本文简单介绍了在 Node.js 中使用 Sequelize ORM 进行数据库操作的方法,包括配置 Sequelize、定义模型和进行 CRUD 操作。Sequelize 提供了丰富的查询方式和操作方法,可以帮助我们轻松地完成各种复杂的数据库操作。如需进一步学习和了解 Sequelize 的使用,请参考 Sequelize 官方文档

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

纠错
反馈