使用 MySQL 和 Sequelize 在 Express.js 中实现数据持久化

阅读时长 7 分钟读完

Express.js 是一个非常流行的 Node.js web 框架,它提供了快速、简单、灵活的方式来构建 web 应用程序。当构建 web 应用程序时,数据持久化是一个非常重要的问题。在这篇文章中,我们将介绍如何使用 MySQL 和 Sequelize 在 Express.js 中实现数据持久化。

MySQL 数据库

MySQL 是一个流行的关系型数据库,它是开源的,免费的,可靠的,具有高性能和高可用性。MySQL 可以在多种操作系统上运行,包括 Windows、Linux 和 macOS。MySQL 支持 SQL 语言,它允许我们创建表、插入数据、查询数据、更新数据和删除数据。

Sequelize ORM

Sequelize 是一个 Node.js ORM(对象关系映射)库,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL。Sequelize 提供了一种简单、灵活和强大的方式来管理数据库表和数据。Sequelize 支持多种数据类型,包括字符串、整数、浮点数、日期、布尔值和 JSON 数据。

创建 Express.js 应用程序

首先,我们需要创建一个 Express.js 应用程序。在终端中运行以下命令创建一个名为 myapp 的应用程序:

在 myapp 目录中创建一个名为 app.js 的文件,并添加以下代码:

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

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

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

在终端中运行以下命令启动应用程序:

在浏览器中访问 http://localhost:3000,应该会看到 "Hello World!"。

创建 MySQL 数据库

接下来,我们需要在本地计算机上安装 MySQL 数据库。在安装 MySQL 数据库之后,我们需要创建一个名为 mydb 的数据库。在 MySQL 命令行终端中运行以下命令:

安装和配置 Sequelize

接下来,我们需要安装 Sequelize 和 MySQL 驱动程序。在终端中运行以下命令:

在 myapp 目录中创建一个名为 models 的目录,并在其中创建一个名为 index.js 的文件,并添加以下代码:

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

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

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

在这里,我们创建了一个 Sequelize 实例,并使用 authenticate() 方法测试连接。如果连接成功,我们会在控制台中看到 "Connection has been established successfully." 。

创建模型

接下来,我们需要创建一个模型来管理数据库表和数据。在 models 目录中创建一个名为 user.js 的文件,并添加以下代码:

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

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

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

在这里,我们创建了一个名为 user 的模型,它包含 id、name 和 email 字段。id 字段是一个自增的整数,作为主键。name 和 email 字段是字符串,不能为空。

创建控制器

接下来,我们需要创建一个控制器来处理 HTTP 请求和响应。在 myapp 目录中创建一个名为 controllers 的目录,并在其中创建一个名为 user.js 的文件,并添加以下代码:

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

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

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

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

在这里,我们创建了一个名为 user 的控制器,它处理 GET 和 POST 请求。GET 请求返回所有用户,POST 请求创建一个新用户。

配置路由

最后,我们需要配置路由来映射 HTTP 请求和控制器。在 app.js 文件中添加以下代码:

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

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

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

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

在这里,我们使用 express.json() 中间件来解析请求正文,使用 /users 路径映射 user 控制器。

测试应用程序

在终端中运行以下命令启动应用程序:

在浏览器中访问 http://localhost:3000/users,应该会看到一个空的数组。

发送一个 POST 请求来创建一个新用户。使用 Postman 或 curl 发送以下请求:

在浏览器中访问 http://localhost:3000/users,应该会看到一个包含一个用户的数组。

结论

在本文中,我们介绍了如何使用 MySQL 和 Sequelize 在 Express.js 中实现数据持久化。我们创建了一个 Express.js 应用程序,并使用 Sequelize ORM 访问 MySQL 数据库。我们创建了一个模型来管理数据库表和数据,并创建了一个控制器来处理 HTTP 请求和响应。最后,我们配置了路由来映射 HTTP 请求和控制器。这个应用程序可以作为一个模板来构建更复杂的 web 应用程序。

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

纠错
反馈