在 Node.js 的开发过程中,使用 Sequelize 可以方便地操作数据库。在实际应用场景中,我们需要对数据进行操作,包括建立数据表和删除数据表。本文将介绍 Sequelize 中如何建立和删除数据表,详细且有深度和学习以及指导意义,并包含示例代码。
一、Sequelize 中建立数据表
- 安装 Sequelize
在开始建立数据表之前,需要安装 Sequelize 库。通过 npm 命令行安装,代码如下:
npm install sequelize sequelize-cli mysql2
注:本文以 MySQL 数据库为例。
其中,sequelize-ts-cli 是根据 Sequelize-ts(TypeScript 风格 Sequelize 库)的文档生成的命令行工具,如果使用普通 Sequelize 库,可以使用 sequelize-cli。
- 定义表结构
在建立数据表前,需要先通过定义表结构的方式将 Model 先定义出来。每个 Model 对应着数据库中的一张表。以下是一个 User 的 model 示例:
-- -------------------- ---- ------- ------ - ---------- ------ --------- - ---- ------------ ------ - -------- - ---- ------------------- ------ ----- ---- ------- ----- - ------ ---- ------- ------ ------ ------- ------ ------- ------- ------ ---------- ------- - ---------- - --- - ----- --------------------------- -------------- ----- ----------- ----- -- ----- - ----- --------------------- ---------- ------ -- ------ - ----- --------------------- ---------- ------ ------- ----- -- --------- - ----- --------------------- ---------- ------ -- -- - ---------- -------- ---------- --------- -- ------- - -- -- ----------- -- ---------- -- ----------- ------ ---- -- -- -----------
上述代码中,User 继承于 Sequelize 的 Model,定义了表结构,包括列名、列类型、是否可为空、是否唯一、主键、自增等信息。其中,init 方法是 Model 类的一个静态方法,用于定义 Model(即表结构),第一个参数是表结构,第二个参数是选项对象,其中 sequelize 属性是必须的,它是 Sequelize 实例对象,表示连接到哪个数据库。
- 同步数据表
定义表结构后,需要通过 sync 方法同步到数据库。sync 方法有两个参数,第一个参数是 force,它表示强制同步,当 force 为 true 时,它会在同步前将数据表先删除(慎用),再重新创建(这样可能会破坏已经存在的数据),如果为 false 或不指定,则会从数据库中获取已存在的表结构,并与 Model 进行对比,发现差异时会自动更新,但不会改变现有的数据。第二个参数 alter 表示表结构改变时是否自动更新(即增、删、改列),这样就不需要手动删除并重新创建数据表了,但也需要注意慎用。
User.sync({ force: false, alter: true }).then(() => { console.log('同步用户表成功'); });
- 使用数据库
通过上述步骤,在 Sequelize 中已经建立了一张数据表(即 User 对应的表)并同步到了数据库中。之后就可以在 Node.js 中操作数据库了,比如添加、删除、更新数据等。
二、Sequelize 中删除数据表
在 Sequelize 中,如果需要删除数据表,可以使用 destroy 方法。但是,它只能用于删除数据表的记录,而不能删除整个数据表。要删除整个数据表,需要使用 drop 方法。
下面是一个删除 User 数据表的示例代码:
User.drop().then(() => { console.log('删除用户表成功'); });
三、总结
Sequelize 是一款非常好用的 Node.js ORM 库,通过上述步骤,我们可以方便地建立和删除数据表。需要注意的是,drop 方法不仅会删除表结构,还会删除数据,因此在实际应用中要慎用。
除了建立和删除数据表,Sequelize 还有很多其它方便的功能,比如查询、排序、分页、事务、约束、关联查询等。学会了掌握 Sequelize,可以提高 Node.js 开发的效率,也可以更加灵活高效地操作数据库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64842dca48841e9894353ef8