在进行 Node.js 后端开发时,我们经常需要使用 ORM(对象关系映射)库来进行数据库操作。Sequelize 是 Node.js 中非常流行的 ORM 库之一,它支持多种数据库(PostgreSQL、MySQL、SQLite、MSSQL),并提供了丰富的功能和灵活的配置。
为了更方便地使用 Sequelize,官方提供了一个 CLI(命令行界面)工具,可以帮助我们快速创建和管理 Sequelize 项目,本文将介绍 Sequelize CLI 工具的使用方法和注意事项。
安装 Sequelize CLI
首先,我们需要安装 Sequelize CLI 工具,可以通过 NPM 安装:
npm install --save-dev sequelize-cli
安装完成后,我们可以通过 sequelize
命令来使用 Sequelize CLI 工具。
创建 Sequelize 项目
使用 Sequelize CLI 工具创建项目非常简单,只需要执行下面的命令:
sequelize init
执行完成后,Sequelize CLI 工具会自动创建以下目录和文件:
. ├── config │ ├── config.json │ └── index.js ├── models │ └── index.js ├── migrations └── seeders
其中,config
目录存放数据库配置信息,models
目录存放 Sequelize 的模型定义文件,migrations
目录存放数据库迁移脚本,seeders
目录存放数据库种子数据。
配置数据库连接
打开 config/config.json
文件,可以看到 Sequelize CLI 工具默认使用 SQLite 数据库,我们可以根据需要进行修改。以 MySQL 数据库为例,修改后的 config.json
文件如下:
-- -------------------- ---- ------- - -------------- - ----------- ------- ----------- --------- ----------- ---------- ------- ------------ ---------- ------- -- ------- - ----------- ------- ----------- --------- ----------- ---------- ------- ------------ ---------- ------- -- ------------- - ----------- ------- ----------- --------- ----------- ---------- ------- ------------ ---------- ------- - -
其中,dialect
指定数据库类型,host
指定数据库地址,username
和 password
指定数据库用户和密码,database
指定数据库名称。根据实际情况修改即可。
定义 Sequelize 模型
在 models
目录下创建一个新文件,命名为 User.js
,内容如下:
module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { name: DataTypes.STRING, age: DataTypes.INTEGER }, {}); return User; }
该代码定义了一个 User
模型,包含 name
和 age
两个属性,数据类型分别为字符串和整数。
数据库迁移
使用 Sequelize CLI 工具进行数据库迁移非常方便,只需要在命令行界面中执行以下命令:
sequelize migration:generate --name create-users
执行完成后,Sequelize CLI 工具会在 migrations
目录中自动创建一个新的迁移脚本:
-- -------------------- ---- ------- -------------- - - --- ----- ---------------- ---------- -- - ----- ----------------------------------- - --- - ---------- ------ -------------- ----- ----------- ----- ----- ----------------- -- ----- - ----- ---------------- -- ---- - ----- ----------------- -- ---------- - ---------- ------ ----- -------------- -- ---------- - ---------- ------ ----- -------------- - --- -- ----- ----- ---------------- ---------- -- - ----- ---------------------------------- - --
该代码在数据库中创建了一个名为 Users
的表,并定义了 name
、age
、createdAt
和 updatedAt
四个字段。
执行迁移脚本的命令如下:
sequelize db:migrate
操作数据库
执行完迁移脚本后,我们可以使用 Sequelize 提供的 API 来进行数据库操作。在 models/index.js
文件中,我们需要将所有模型引入,并建立相应关系,下面是完整示例代码:
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - ---------------- ----- --------- - --------------------- ----- -------- - -------------------------- ----- -- - --- ----- --------- - --- ----------- -------- -------- ----- ------------ --------- ---------- --------- ------- --------- --------- --- -- ----------------------- -------------- -- - ------ ------------------ --- -- -- ----- --- --------- -- --------------- --- ------- -- --------------- -- - ----- ----- - ---------------------------- ----------------- --------------------- -------------- - ------ --- --------------------------------- -- - -- ------------------------- - ---------------------------- - --- ------------ - ---------- ------------ - ---------- -------------- - ---
假设我们要对 User
模型进行操作,首先需要引入模型:
const { User } = require('./models');
创建新记录
使用 User.create
方法创建新记录,示例代码如下:
User.create({ name: 'Tom', age: 18 }).then(user => { console.log(user.toJSON()); });
上面代码创建了一条 name
为 Tom
,age
为 18
的记录,并打印了返回的结果。
查询记录
使用 User.findOne
或 User.findAll
方法查询记录,示例代码如下:
User.findOne({ where: { name: 'Tom' } }).then(user => { console.log(user.toJSON()); }); User.findAll().then(users => { console.log(users); });
上面代码分别按照 name
属性和无条件查询,先查询一条记录再查询所有记录,并打印了返回的结果。
更新记录
使用 User.update
方法更新记录,示例代码如下:
User.update({ age: 20 }, { where: { name: 'Tom' } }).then(() => { console.log('Updated successfully.'); });
上面代码将 name
为 Tom
的记录的 age
属性更新为 20
。
删除记录
使用 User.destroy
方法删除记录,示例代码如下:
User.destroy({ where: { name: 'Tom' } }).then(() => { console.log('Deleted successfully.'); });
上面代码删除了 name
为 Tom
的记录。
总结
Sequelize CLI 工具能够快速生成 Sequelize 项目,帮助开发者节省大量时间,同时提供了丰富的数据库操作方法,非常适用于 Node.js 后端开发。通过本文的介绍和示例代码,读者可以快速了解 Sequelize CLI 工具的使用方法,迅速上手 Sequelize 开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6483dcf748841e9894317a40