1. Sequelize ORM 的使用
先安装sequelize的命令行工具,需要全局安装,这样更方便使用
npm i -g sequelize-cli
接着确保命令行是在当前项目的命令行里,还要安装当前项目所依赖的sequelize包和对数据库支持依赖的mysql2
npm i sequelize mysql2
最后,来初始化项目。
sequelize init
| 文件或目录 | 说明 |
|---|---|
| config/config.json | 数据库连接配置 |
| migrations | 迁移文件 |
| models | 模型文件 |
| seeders | 种子文件 |
2. 模型,迁移和种子
模型
我们现在可以使用sequelize来创建数据表,而不用手动建表。
sequelize model:generate --name Article --attributes title:string,content:text
这个咒语,是用来新建模型的,将来大家还会经常用到它的。
打开models/article.js。可以看到,在模型文件夹中,出现了一个叫做Article的模型,它里面有标题和内容。
标题是字符串类型,对应到 MySQL 数据库里,它就会自动变成varchar。内容部分,则是text类型。
现在就只需要知道,模型就是用来操作数据库的,就是因为有这个文件的存在,我们后面才能使用Article.findAll()这种代码来查询数据。模型里还有一些其他的东西,我们暂时不用管它,后面学到了相关的知识了,我们到时候再来修改。
迁移文件
再来看看migrations文件夹,里面出现了一个由当前时间,加上create-article命名的文件,这个文件就是迁移文件了。它的作用就是用来创建、修改表的。看到这里,在up部分。我们通过createTabel,创建了一个叫做Articles的表。
模型名字是单数:Article。但是表的名字一定是复数形式,也就是Articles。这是sequelize里的命名规则,
运行迁移
sequelize db:migrate
打开数据库客户端,刷新一下,可以看到Articles表又神奇的出现了
种子文件
sequelize seed:generate --name article
完成后,在seeds目录,就看到刚才命令新建的种子文件了。同样也是分为两个部分,up部分用来填充数据,down部分是反向操作,用来删除数据的。
运行种子
sequelize db:seed --seed xxx-article
大家注意了,日常开发项目,都是采用固定的步骤:
| 步骤 | 命令 | 说明 |
|---|---|---|
| 第一步 | sequelize model:generate --name Article --attributes ... | 建模型和迁移文件 |
| 第二步 | 人工处理 | 根据需求调整迁移文件 |
| 第三步 | sequelize db:migrate | 运行迁移,生成数据表 |
| 第四步 | sequelize seed:generate --name article | 新建种子文件 |
| 第五步 | 人工处理 | 将种子文件修改为自己想填充的数据 |
| 第六步 | sequelize db:seed --seed xxx-article | 运行种子文件,将数据填充到数据表中 |
| 方法 | 说明 |
|---|---|
| findAll | 查询所有记录 |
| findAndCountAll | 查询所有记录,并统计数据总数 |
| findByPk | 通过主键查询单条数据 |
| create | 创建新数据 |
| update | 更新数据 |
| destroy | 删除数据 |