Sequelize 是 Node.js 中最流行的 ORM 框架之一,它支持多种数据库,其中包括 MySQL。使用 Sequelize 连接 MySQL 数据库非常简单,本文将介绍如何使用 Sequelize 连接 MySQL 数据库。
安装和配置 Sequelize
要使用 Sequelize 连接 MySQL 数据库,我们首先需要安装 Sequelize 和 MySQL 驱动程序。可以使用 npm 来安装它们:
npm install sequelize mysql2
此外,我们还需要安装 Sequelize CLI 工具。它可以帮助我们自动生成 Sequelize 的模型和迁移脚本。
npm install --save-dev sequelize-cli
安装完 Sequelize 和 CLI 后,我们需要创建一个 .sequelizerc
文件来配置 Sequelize CLI。打开你的项目根目录,创建一个名为 .sequelizerc
的文件,并按照以下方式进行配置:
const path = require('path'); module.exports = { config: path.resolve('./config', 'config.json'), 'models-path': path.resolve('./models'), 'seeders-path': path.resolve('./seeders'), 'migrations-path': path.resolve('./migrations') };
这个配置告诉 Sequelize CLI 从 ./config/config.json
中读取数据库配置,把模型文件放在 ./models
目录下,把种子数据脚本放在 ./seeders
目录下,把迁移脚本放在 ./migrations
目录下。
最后,我们还需要创建一个名为 config.json
的文件,在其中配置数据库信息。在项目根目录下创建一个名为 config
的目录,然后创建 config.json
文件,并按照以下方式进行配置:
-- -------------------- ---- ------- - -------------- - ---------- -------- ----------- ---------------- ----------- ------- ----------- --- ------- ------------ ------- ---- -- ------- - ---------- -------- ----------- --------------------- ----------- ------- ----------- --- ------- ------------ ------- ---- -- ------------- - ---------- -------- ----------- --------------------------- ----------- ------- ----------- --- ------- ------------ ------- ---- - -
这是 Sequelize 连接 MySQL 数据库的常规配置,你需要根据自己的环境对其进行相应的修改。
连接数据库
配置完成后,我们可以使用以下代码连接数据库:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- -------- - -------------------------------------------- ----- --------- - --- ---------- ------------------ ------------------ ------------------ - ----- -------------- ----- -------------- -------- ------- - -- ------ -------- ---------------- - --- - ----- ------------------------- ----------------------- --- ---- ----------- ---------------- - ----- ------- - --------------------- -- ------- -- --- ----------- ------- - ------- - ------------------ - -----
这里我们首先读取了 config.json
中的配置。然后使用 new Sequelize
创建一个 Sequelize 实例,传递数据库名称、用户名、密码和其他选项。最后使用 sequelize.authenticate()
来测试连接是否成功。
定义模型
一旦我们成功连接到数据库,我们就可以定义模型了。模型用于描述我们的数据结构,并将其映射到数据库中。例如,我们可以定义一个 User
模型:
-- -------------------- ---- ------- ----- - --------- - - --------------------- ----- --------- - ----------------- ----- ---- - ------------------------ - ---------- - ----- ----------------- ---------- ----- -- --------- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ------ ------- ---- - --- -------------- - -----
这里我们首先导入 DataTypes
和 sequelize
,然后使用 sequelize.define
创建一个名为 User
的模型。模型中包含 firstName
、lastName
和 email
字段,这些字段映射到数据库中的列。
执行迁移脚本
一旦我们定义了模型,我们需要使用迁移脚本将这些定义映射到数据库中的表。我们可以使用 Sequelize CLI 工具来自动生成迁移脚本。
首先,在命令行中切换到项目根目录,然后输入以下命令创建一个名为 create_users_table
的迁移脚本:
npx sequelize-cli migration:generate --name create_users_table
接下来,打开 create_users_table
迁移脚本,并修改 up
和 down
方法以创建或删除 Users
表:
-- -------------------- ---- ------- -------------- - - --- ----- ---------------- ---------- -- - ----- ----------------------------------- - --- - ---------- ------ -------------- ----- ----------- ----- ----- ----------------- -- ---------- - ---------- ------ ----- ---------------- -- --------- - ---------- ------ ----- ---------------- -- ------ - ---------- ------ ------- ----- ----- ---------------- -- ---------- - ---------- ------ ----- -------------- -- ---------- - ---------- ------ ----- -------------- - --- -- ----- ----- ---------------- ---------- -- - ----- ---------------------------------- - --
这个迁移脚本会创建一个名为 Users
的表,具有 id
、firstName
、lastName
、email
、createdAt
和 updatedAt
字段。createdAt
和 updatedAt
字段用于 Sequelize 自动记录每次记录创建和更新的时间。
最后,我们可以使用以下命令运行迁移脚本:
npx sequelize-cli db:migrate
查询数据
现在我们已经连接到数据库并成功定义了模型,我们可以使用查询语言来读取和写入数据了。
例如,我们可以使用以下代码创建一个新用户:
-- -------------------- ---- ------- ----- ---- - ------------------------- ------ -------- ------------ - --- - ----- ------------ ----- ---- - ----- ------------- ---------- ------- --------- ------ ------ ---------------------- --- --------------------------- - ----- ------- - --------------------- -- ------ ------- ------- - ------- - ------------------ - -----
这里,我们使用 User.sync()
来确保数据库中存在 Users
表。然后使用 User.create()
创建一个新的用户记录。最后,我们将用户记录转换为 JSON 并将其打印到控制台。
我们还可以使用查询语言来读取数据。例如,我们可以使用以下代码读取所有用户记录:
-- -------------------- ---- ------- ------ -------- ---------- - --- - ----- ----- - ----- --------------- -------------------------- -- ---------------- - ----- ------- - --------------------- -- --- -------- ------- - ------- - ------------------ - -----
这个代码使用 User.findAll()
查询所有用户记录,并将其转换为 JSON 数组。
总结
在本文中,我们已经介绍了如何使用 Sequelize 连接 MySQL 数据库,并定义和使用模型查询数据库。这些技术将帮助你在 Node.js 中更轻松地使用数据库,从而更快地开发 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6453b9b6968c7c53b07f415d