前言
在现代 Web 开发中,服务器与客户端之间的数据传输和存储已经成为非常关键的一个环节。ORM 是一种编程技术,可以将面向对象编程语言中的对象模型与关系型数据库中的数据模型相连接。该模式可以极大地简化 Web 应用程序的逻辑。
本文将介绍如何使用 Express.js 和 Sequelize 进行 ORM 数据库操作,为初学者提供详细的指导。
准备工作
在使用 Sequelize 进行 ORM 数据库操作之前,你需要安装并运行以下软件:
- Node.js:你可以从官方网站 https://nodejs.org 下载安装包并安装。
- MySQL:你可以从官方网站 https://www.mysql.com/ 下载安装包并安装。
安装完成后,你需要在 MySQL 中创建一个数据库,并在该数据库中创建一个表,用于存储数据。
创建 Express.js 应用程序
首先,我们需要创建一个 Express.js 应用程序。运行以下命令:
npm install express --save
接着,我们需要引入 Express.js 库,并创建一个 Express 应用程序实例。在 app.js
中编写以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- ------------------------------- --------- ---- ---- --------------------------- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---展开代码
该代码会创建一个基于 Express.js 的应用程序,并将其运行在本地 3000 端口上。
安装 Sequelize
接下来,我们需要安装 Sequelize 库。运行以下命令:
npm install sequelize --save npm install mysql2 --save
在 app.js
中添加以下代码:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database_name', 'user_name', 'password', { host: 'localhost', dialect: 'mysql' });
这些代码将使用 Sequelize 连接到 MySQL 数据库。
创建模型
我们需要创建一个模型,将数据库中的表映射到 JavaScript 对象。在 Sequelize 中,可以使用 sequelize.define
方法创建模型。在 models/user.js
中添加以下代码:
-- -------------------- ---- ------- -------------- - ----------- ---------- -- - ----- ---- - ------------------------ - --- - ----- --------------------------- -------------- ----- ----------- ----- ---------- ----- -- ---------- - ----- ----------------- ---------- ------ -- --------- - ----- ----------------- ---------- ------ -- ------ - ----- ----------------- ---------- ------ ------- ---- - --- ------ ----- --展开代码
该代码创建了一个名为 User
的模型,该模型包含 id
、firstName
、lastName
和 email
四个属性。
同步数据库
现在我们需要保证数据库中有对应的表。在 app.js
中添加以下代码,将在我们的 MySQL 数据库中创建 User
表:
-- -------------------- ---- ------- ----- ---- - ---------------------------------- ---------------- ------ ---- -- -------- -- - --------------------- ---- ----------- ----- ----- - - ---------- -------- --------- ------- ------ ------------------- -- ------ ------------------- -- ------------ -- - --------------------------- -- ------------ -- - --------------------- --------- ---展开代码
在上述代码中,我们使用 sequelize.sync()
方法来同步数据库。其中 force: true
表示如果数据库表已经存在,则会强制删除原来的表,并重新创建一个新表。
我们也可以使用 sequelize.authenticate()
方法来检查数据库连接是否成功。
基本的 Sequelize 操作
我们已经设置好了模型和数据表,接下来我们可以使用 Sequelize 来进行数据库操作。
查询数据
我们可以使用以下代码查询用户列表:
const users = await User.findAll(); console.log(users);
上述代码将查询 _User
表并返回一个包含所有用户的数组。
如果要查询特定的用户,我们可以使用以下代码:
const user = await User.findOne({ where: { id: 1 } }); console.log(user);
这会查询 _User
表,并返回 id
为 1 的用户对象。
插入数据
要插入一条数据,我们可以使用以下代码:
const user = await User.create({ firstName: 'Lily', lastName: 'Huang', email: 'lily@example.com' }); console.log(user.toJSON());
上述代码将在 _User
表中插入一条名为 Lily Huang
的新数据,并打印该数据对象的 JSON 表示形式。
更新数据
我们可以使用以下代码来更新数据:
-- -------------------- ---- ------- ----- ---- - ----- -------------- ------ - ---------- ------- - --- -------------- - ------------- ------------- - ------- ----- ------------ ---------------------------展开代码
上述代码将查询 _User
表,并更改名为 Admin
的用户对象的 firstName
和 lastName
属性,并保存更改。
删除数据
我们可以使用以下代码来删除数据:
await User.destroy({ where: { id: 1, } });
上述代码将删除 _User
表中 id
为 1 的行。
结论
本文介绍了使用 Express.js 和 Sequelize 进行 ORM 数据库操作的基本知识。在实际项目中,需要根据具体需求结合 Sequelize 的文档进行更复杂的操作。
完整的示例代码请查看 https://github.com/lilyhuang2020/express-sequelize-sample。
希望本文对你有所帮助,谢谢阅读!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6771d4c66d66e0f9aad24626