前言
Sequelize 是一个 Node.js ORM(Object-Relational Mapping) 工具,可以用来操作关系型数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等。Sequelize 提供了强大的模型定义和查询构建功能,可以帮助开发者快速、简单地进行数据库操作。
本文将介绍如何使用 Sequelize 进行 CRUD 操作,包括创建、读取、更新和删除数据。我们将会使用 MySQL 数据库作为示例,使用 Express 框架来搭建 Node.js 应用程序。
准备工作
在开始之前,需要先安装 Node.js 和 MySQL 数据库。另外,我们还需要安装 Sequelize 和 Express:
npm install --save sequelize mysql2 express
创建数据库和表
首先,我们需要创建一个名为 sequelize_demo
的数据库,并创建一个名为 users
的表。可以使用以下 SQL 命令来创建:
-- -------------------- ---- ------- ------ -------- --------------- --- --------------- ------ ----- ----- - -- --- ------- --- --------------- ---- ------------- ----- ------------- --- --- --
连接数据库
在 Node.js 中,可以使用 Sequelize 来连接数据库。我们需要提供数据库的连接信息,包括主机名、用户名、密码、数据库名和端口号。可以使用以下代码来连接数据库:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- --------------------------- ------- --- - ----- ------------ -------- -------- ----- ----- -------- ----- --- ------------------------ -------- -- - --------------------- ---------- --- ---- ----------- ---------------- -- ---------- -- - --------------------- -- ------- -- --- ----------- ----- ---
定义模型
在 Sequelize 中,模型用于表示数据库中的表。可以使用模型来创建、读取、更新和删除数据。在我们的示例中,我们需要定义一个名为 User
的模型,用于表示 users
表。
可以使用以下代码来定义模型:
-- -------------------- ---- ------- ----- - ---------- --------- - - --------------------- ----- --------- - --- --------------------------- ------- --- - ----- ------------ -------- -------- ----- ----- -------- ----- --- ----- ---- - ------------------------ - ----- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ----- -- ---- - ----- ------------------ ---------- ---- - --- ------------
在上面的代码中,我们使用 sequelize.define
方法来定义模型。该方法接受两个参数,第一个参数是模型的名称,第二个参数是一个对象,用于定义模型的属性。在我们的示例中,我们定义了 name
、email
和 age
三个属性,分别表示用户的姓名、电子邮件地址和年龄。
创建数据
使用 Sequelize,可以使用模型来创建数据。可以使用以下代码来创建一个新用户:
-- -------------------- ---- ------- ------------- ----- ----- ----- ------ ----------------------- ---- -- -- ---------- -- - --------------------------- -- ---------- -- - --------------------- -- ------ ------- ----- ---
在上面的代码中,我们使用 User.create
方法来创建一个新用户。该方法接受一个对象作为参数,用于指定新用户的属性。在创建成功后,该方法会返回一个 Promise 对象,该对象包含创建的用户对象。我们使用 user.toJSON()
方法将用户对象转换为 JSON 格式,并将其打印到控制台上。
读取数据
使用 Sequelize,可以使用模型来读取数据。可以使用以下代码来读取所有用户:
User.findAll() .then(users => { console.log(users.map(user => user.toJSON())); }) .catch(err => { console.error('Unable to read users:', err); });
在上面的代码中,我们使用 User.findAll
方法来读取所有用户。该方法返回一个 Promise 对象,该对象包含所有用户对象的数组。我们使用 users.map(user => user.toJSON())
方法将所有用户对象转换为 JSON 格式,并将其打印到控制台上。
可以使用以下代码来读取指定 ID 的用户:
User.findByPk(1) .then(user => { console.log(user.toJSON()); }) .catch(err => { console.error('Unable to read user:', err); });
在上面的代码中,我们使用 User.findByPk
方法来读取 ID 为 1 的用户。该方法返回一个 Promise 对象,该对象包含指定 ID 的用户对象。我们使用 user.toJSON()
方法将用户对象转换为 JSON 格式,并将其打印到控制台上。
更新数据
使用 Sequelize,可以使用模型来更新数据。可以使用以下代码来更新指定 ID 的用户:
-- -------------------- ---- ------- ------------- ----- ----- ----- ------ ----------------------- ---- -- -- - ------ - --- - - -- -------- -- - ----------------- --- ---- ------- ---------------- -- ---------- -- - --------------------- -- ------ ------- ----- ---
在上面的代码中,我们使用 User.update
方法来更新 ID 为 1 的用户。该方法接受两个参数,第一个参数是一个对象,用于指定要更新的属性,第二个参数是一个对象,用于指定更新的条件。在更新成功后,该方法会返回一个 Promise 对象,我们可以在 then
方法中打印一条成功消息。
删除数据
使用 Sequelize,可以使用模型来删除数据。可以使用以下代码来删除指定 ID 的用户:
-- -------------------- ---- ------- -------------- ------ - --- - - -- -------- -- - ----------------- --- ---- ------- ---------------- -- ---------- -- - --------------------- -- ------ ------- ----- ---
在上面的代码中,我们使用 User.destroy
方法来删除 ID 为 1 的用户。该方法接受一个对象作为参数,用于指定删除的条件。在删除成功后,该方法会返回一个 Promise 对象,我们可以在 then
方法中打印一条成功消息。
结语
本文介绍了如何使用 Sequelize 进行 CRUD 操作,包括创建、读取、更新和删除数据。通过本文的学习,我们可以了解到 Sequelize 的基本用法,并掌握如何使用 Sequelize 来操作 MySQL 数据库。
完整示例代码可以在我的 GitHub 仓库中找到:https://github.com/mayandev/sequelize-demo。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6797826c504e4ea9bde9d4a2