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 的应用程序:
$ mkdir myapp $ cd myapp $ npm init -y $ npm install express --save
在 myapp 目录中创建一个名为 app.js 的文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ------------ ----- ---- -- - --------------- -------- -- ---------------- -- -- - ------------------- -- ------- -- ----------------------- --
在终端中运行以下命令启动应用程序:
$ node app.js
在浏览器中访问 http://localhost:3000,应该会看到 "Hello World!"。
创建 MySQL 数据库
接下来,我们需要在本地计算机上安装 MySQL 数据库。在安装 MySQL 数据库之后,我们需要创建一个名为 mydb 的数据库。在 MySQL 命令行终端中运行以下命令:
CREATE DATABASE mydb;
安装和配置 Sequelize
接下来,我们需要安装 Sequelize 和 MySQL 驱动程序。在终端中运行以下命令:
$ npm install sequelize mysql2 --save
在 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 控制器。
测试应用程序
在终端中运行以下命令启动应用程序:
$ node app.js
在浏览器中访问 http://localhost:3000/users,应该会看到一个空的数组。
发送一个 POST 请求来创建一个新用户。使用 Postman 或 curl 发送以下请求:
POST http://localhost:3000/users Content-Type: application/json { "name": "Alice", "email": "alice@example.com" }
在浏览器中访问 http://localhost:3000/users,应该会看到一个包含一个用户的数组。
结论
在本文中,我们介绍了如何使用 MySQL 和 Sequelize 在 Express.js 中实现数据持久化。我们创建了一个 Express.js 应用程序,并使用 Sequelize ORM 访问 MySQL 数据库。我们创建了一个模型来管理数据库表和数据,并创建了一个控制器来处理 HTTP 请求和响应。最后,我们配置了路由来映射 HTTP 请求和控制器。这个应用程序可以作为一个模板来构建更复杂的 web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67273f5e2e7021665e1c8eab