使用 Node.js 和 Sequelize 实现 MySQL 数据库连接和操作的教程

阅读时长 8 分钟读完

前言

在现代化的 Web 应用开发中,数据是一个必不可少的基础。数据库是管理数据的一个重要工具,而 MySQL 是其中一种高性能、可扩展的关系型数据库,因此它是 Web 开发者的首选之一。本文将介绍如何使用 Node.js 和 Sequelize 库来连接 MySQL 数据库,并实现对数据库的操作。

环境准备

安装 Node.js

Node.js 是一个开源的、跨平台的 JavaScript 运行时环境,它允许开发者使用 JavaScript 来编写服务器端程序。在本文中,我们将使用 Node.js 来连接 MySQL 数据库和实现数据操作。在您开始本教程之前,请确保您已安装 Node.js,参考官方网站:https://nodejs.org/

安装 MySQL

MySQL 是一个开源的、高性能、可扩展的关系型数据库管理系统。在本文中,我们将使用 MySQL 来作为我们的数据库。在您开始本教程之前,请确保您已安装 MySQL 并且您拥有一个拥有所有权限的用户名和密码。参考 https://dev.mysql.com/downloads/ 安装 MySQL。

安装 Sequelize 库

Sequelize 是一个基于 JavaScript 的 ORM(Object-Relational-Mapper)库,它可以方便地操作各种关系型数据库,包括 MySQL。在本文中,我们将使用 Sequelize 作为我们的 ORM 库。您可以通过 npm 包管理器来安装它:

连接数据库

在使用 Sequelize 连接 MySQL 数据库之前,我们需要先配置 Sequelize 连接数据库的信息。在本例中,我们将使用以下参数:

其中:

  • 'database':数据库名称。
  • 'username':用户名。
  • 'password':密码。
  • 'localhost':数据库主机地址。
  • 'mysql':数据库类型。

定义模型

在使用 Sequelize 对 MySQL 数据库进行操作之前,我们需要先定义模型(Model)。在 Sequelize 中,模型用于表示数据库中的每个表。我们可以通过 Sequelize 来定义模型并实现数据的增、删、改、查等操作。

在本例中,我们将创建一个 User 模型来表示数据库中的 users 表:

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

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

在上面的代码中,我们定义了一个 User 模型,并在其中定义了表中所包含的属性以及它们的数据类型。在本例中,我们定义了 firstNamelastNameemailpasswordcreatedAtupdatedAt 这几个属性,其中 emailpassword 属性被定义为必填字段并且具有唯一性。

数据库操作

数据库同步

在定义完模型后,我们需要执行一次同步操作将模型同步到数据库中:

在上面的代码中,我们使用 sequelize.sync() 方法将模型同步到数据库中。sequelize.sync() 方法会自动检查数据库中是否存在每个模型,如果不存在就会创建一个新的表。如果模型定义发生了改变,则数据库中的表结构也会自动更新。

插入记录

在同步完成后,我们可以使用 create() 方法向数据库中插入一条新记录:

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

在上面的代码中,我们使用 create() 方法向数据库中插入一条新的 User 记录。我们传递了一些必填字段的值,例如 firstNamelastNameemailpassword,并将它们作为一个对象传递给 create() 方法。在创建新的记录后,我们将使用 console.log() 将结果输出到控制台。

查询记录

在向数据库中插入记录后,我们可以使用 findAll() 方法获取所有 User 记录:

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

在上面的代码中,我们使用 findAll() 方法从数据库中查询所有的 User 记录。查询结果会存储在一个数组中,我们使用 forEach() 方法遍历数组并输出每个 User 记录的全名。

更新记录

在查询记录后,我们可以使用 update() 方法更新指定的记录:

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

在上面的代码中,我们使用 update() 方法更新 User 表中 id 为 1 的记录的 email 属性。我们传递两个参数给 update() 方法:一个包含待更新的属性和其对应值的对象,以及一个包含查询条件的对象。

删除记录

在更新记录后,我们可以使用 destroy() 方法删除指定的记录:

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

在上面的代码中,我们使用 destroy() 方法从数据库中删除 User 表中 id 为 1 的记录。我们传递了一个包含查询条件的对象给 destroy() 方法。

总结

在本文中,我们介绍了如何使用 Node.js 和 Sequelize 库来连接 MySQL 数据库和实现数据操作。我们首先配置了 Sequelize 连接 MySQL 数据库的信息,然后定义了一个 User 模型来表示数据库中的 users 表。在定义完模型后,我们使用了 sync() 方法将模型同步到数据库中,并演示了如何使用 create()findAll()update()destroy() 方法来实现数据操作。这些方法都是 Sequelize 库提供的,能够方便地实现对 MySQL 数据库的操作。本文只是在 Sequelize 中使用 MySQL 的简介,Sequelize 还支持各种复杂的数据库操作以及高级功能。有兴趣的读者可以访问官方文档(https://sequelize.org/)来了解更多。

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

纠错
反馈