介绍
Node.js 是一个流行的服务器端 JavaScript 运行环境,用于构建高可靠性、高扩展性的应用程序。Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping) 框架,它可以帮助我们代码化地访问和管理关系型数据库。
本文将介绍如何使用 Node.js 和 Sequelize 来实现关系型数据库的常见操作,其中包括如何连接数据库、创建表、插入数据、更新数据、删除数据以及查询数据。
创建项目
在开始之前,首先需要创建一个新的 Node.js 项目。如果您已经有现成的 Node.js 项目了,可以直接跳过这一步。
安装 Node.js 和 npm
在 Node.js 官网 下载并安装 Node.js,安装完成后会自动安装 npm。您可以在终端窗口中输入以下命令来验证是否安装成功:
node -v npm -v
如果返回版本号,表示 Node.js 和 npm 已经正确安装。
创建新的 Node.js 项目
在终端窗口中创建一个新的 Node.js 项目,执行以下命令:
mkdir myproject cd myproject npm init
按照提示输入您的项目信息即可。
安装 Sequelize 和相关模块
在项目根目录运行以下命令来安装 Sequelize 和相关模块:
npm install --save sequelize sequelize-cli mysql2
sequelize
:Sequelize 的主模块,提供对关系型数据库的访问和管理。sequelize-cli
:Sequelize 的命令行工具,用于创建数据表、填充初始数据、生成模型等。mysql2
:MySQL 数据库驱动程序,用于连接 MySQL 数据库。
连接数据库
在 Node.js 中使用 Sequelize 访问数据库,需要首先建立与数据库的连接。在本例中,我们使用 MySQL 数据库进行演示。在项目根目录下创建一个 index.js
文件,输入以下代码来建立连接和关闭连接:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- --------- --------------- -------- -- - ----------------------- --- ---- ----------- ---------------- -- ---------- -- - --------------------- -- ------- -- --- ----------- ----- -- ----------- -- - ------------------ ---
其中:
database_name
:数据库名称,需要自行替换为实际的数据库名称。username
:数据库用户名,需要自行替换为实际的用户名。password
:数据库密码,需要自行替换为实际的密码。host
:数据库服务器地址,默认为localhost
。dialect
:数据库类型,本例中为 MySQL。
运行 node index.js
命令即可连接数据库。
创建表
在建立好与数据库的连接之后,我们需要定义数据表的模型。模型是 Sequelize 中与某张数据表对应的 JavaScript 类,它用于描述数据表的结构和约束条件。
在使用 Sequelize 创建数据表前,需要先安装 Sequelize CLI,并使用它来生成数据表的模型。
全局安装 Sequelize CLI
执行以下命令来全局安装 Sequelize CLI:
npm install --global sequelize-cli
初始化 Sequelize 项目
在项目根目录中执行以下命令来初始化 Sequelize 项目:
sequelize init
这个命令会在项目根目录下生成一个
config
文件夹和一个models
文件夹。生成数据表的模型
在终端中执行以下命令来生成数据表的模型:
sequelize model:generate --name User --attributes name:string,email:string,password:string
其中:
User
:数据表的名称。name:string,email:string,password:string
:定义User
数据表中的字段、类型和约束条件。
运行完后,
models
文件夹下会生成一个名为User.js
的文件,它就是User
数据表的模型。同步数据表结构
在代码中引入
User
模型,并使用sequelize.sync()
方法将模型与数据表同步:-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - ----------------------------------- ----------- ---------------- ------ ---- -- -------- -- - --------------------- ---------------- -- ----------- -- - ------------------ ---
其中:
force: true
:表示如果数据表已经存在,则删除后重新创建。
运行 node index.js
命令即可创建 User
数据表。
插入数据
在 User
数据表中插入一条新数据,可以使用 User.create()
方法。
-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - ----------------------------------- ----------- ---------------- -------- -- - ------ ------------- ----- ----- ----- ------ ---------------------- --------- -------- --- -- ---------- -- - --------------------------- -- ----------- -- - ------------------ ---
其中:
User.create()
:创建一条新记录,并插入到数据库中。.then(user => console.log(user.toJSON()))
:输出插入成功的数据记录。
运行 node index.js
命令即可插入一条新数据到 User
数据表中。
更新数据
在 User
数据表中更新一条数据,可以使用 User.update()
方法。
-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - ----------------------------------- ----------- ---------------- -------- -- - ------ ------------- ----- ----- ---- -- - ------ - --- - - --- -- -------- -- - ----------------- ------- ---------------- -- ----------- -- - ------------------ ---
其中:
User.update()
:更新指定条件的数据记录。{ where: { id: 1 } }
:更新条件,本例中表示更新id
为1
的数据记录。.then(() => console.log('Data updated successfully.'))
:输出更新成功的提示信息。
运行 node index.js
命令即可更新 User
数据表中 id
为 1
的数据记录的 name
字段为 Jane Doe
。
删除数据
在 User
数据表中删除一条数据,可以使用 User.destroy()
方法。
-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - ----------------------------------- ----------- ---------------- -------- -- - ------ -------------- ------ - --- - - --- -- -------- -- - ----------------- ------- ---------------- -- ----------- -- - ------------------ ---
其中:
User.destroy()
:删除指定条件的数据记录。{ where: { id: 1 } }
:删除条件,本例中表示删除id
为1
的数据记录。.then(() => console.log('Data deleted successfully.'))
:输出删除成功的提示信息。
运行 node index.js
命令即可删除 User
数据表中 id
为 1
的数据记录。
查询数据
在 User
数据表中查询数据,可以使用 User.findAll()
方法。
-- -------------------- ---- ------- ----- - ---------- ------ --------- - - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- ------- --- ----- ---- - ----------------------------------- ----------- ---------------- -------- -- - ------ --------------- -- ----------- -- - -------------------------- -- ---------------- -- ----------- -- - ------------------ ---
其中:
User.findAll()
:查询数据表中所有数据记录。.then(users => console.log(users.map(user => user.toJSON())))
:输出查询到的所有数据记录。
运行 node index.js
命令即可查询 User
数据表中的所有数据记录。
总结
通过本文的学习,我们了解了如何使用 Node.js 和 Sequelize 来连接、操作关系型数据库,包括创建连接、创建数据表、插入数据、更新数据、删除数据和查询数据。掌握这些基本的数据库操作,可以为我们后续的开发工作打下坚实的基础。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648d158a48841e9894b61531