找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12|回复: 0

使用 Sequelize ORM

[复制链接]

5

主题

8

回帖

37

积分

管理员

积分
37
发表于 昨天 22:14 | 显示全部楼层 |阅读模式
1. ORM 是什么大家学习了上一节的SQL语句后,应该会觉得,日常工作中去写这些东西,还是挺麻烦的。书写SQL语句,非常容易写错,而且要记忆的东西相当的多,这对于新手来说是非常不友好的。
但实际上我们在日常开发中,其实很少写SQL语句,因为我们还有更简便的方式,也就是使用ORM来操作数据库。ORM是在数据库和编程语言之间建立一种映射关系,这样可以让我们有非常简单的代码,来实现各种数据库的操作。
我们这节课的重点就是如何使用Sequelize ORM来操作数据库。例如我们上一课学习的,要查询文章表的所有内容,应该写
   
SELECT * FROM `Articles`;使用 ORM,我们就写成
   
Article.findAll()Article,表示先找到Article这个模型。注意下,这里Article是单数形式,这并不是我写错了,而是 ORM 的就这么规定的。模型名是单数,对应的表名是复数。这样子,它就会自动找到Articles表上。findAll(),就是查询所有的数据了。整行的意思就是,查询Articles表的所有数据。
同样的,如果我想查询id=2的这条记录,也不用写
   
SELECT * FROM `Articles` WHERE `id`=2;而会改为
   
Article.findByPk(2)这里的findByPk,里面的Pk,就是primary key,也就是主键的缩写。我们表里id就是主键,说白了就是通过id来查找数据。
大家看,这样使用ORM来操作数据库后,明显要比写SQL简单的太多了,再也不用背那么多可恶的SQL语句了。但这也不是说用了ORM以后,就一点也不用懂SQL语句了。ORM它只是把我们写的代码,自动转换成SQL了再运行,在底层,实际上一样跑的还是SQL语句。
而且当我们开发中碰到问题了,要调试错误,依然要看命令行里面运行的SQL语句。所以就算开发中不写SQL,也一定要能看懂是什么意思。

2. Sequelize ORM 的使用那么,现在我们就来一起玩玩Sequelize ORM。第一步当然是要来安装了。先安装sequelize的命令行工具,需要全局安装,这样更方便使用
   
npm i -g sequelize-cli接着确保命令行是在当前项目的命令行里,还要安装当前项目所依赖的sequelize包和对数据库支持依赖的mysql2
   
npm i sequelize mysql2最后,来初始化项目。
   
sequelize init
可以看到,提示我们,创建了一个config配置文件和三个目录,这些就是sequelize所需要的东西了。

3. Windows 上出现错误注意,部分 Windows 电脑,由于环境变量错误或其他问题,导致出现错误提示:basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")

可以尝试按以下方法解决:
   
# 卸载全局安装的 sequelize-clinpm uninstall -g sequelize-cli# 改为使用 nxp 方式运行命令。出现提示后,直接按回车npx sequelize-cli init后续课程中使用sequelize命令,都需要自行改为使用npx sequelize-cli

4. 目录结构
   
.├── config│   └── config.json├── migrations├── models│   └── index.js└── seeders在编辑器中,也可以看到项目中新增了这些东西,现在一一看看,它们是用来干嘛的。
  • config:是配置的意思,这里放的也就是sequelize所需要的连接数据库的配置文件。
  • migrations:是迁移的意思,如果你需要对数据库做新增表、修改字段、删除表等等操作,就需要在这里添加迁移文件了。而不是像以前那样,使用客户端软件来直接操作数据库。
  • models:这里面存放的是模型文件,当我们使用sequelize来执行增删改查时,就需要用这里的模型文件了。每个模型都对应数据库中的一张表。
  • seeders,是存放的种子文件。一般会将一些需要添加到数据表的测试数据存在这里。只需要运行一个命令,数据表中就会自动填充进一些用来测试内容的了。

5. 总结
文件或目录说明
config/config.json数据库连接配置
migrations迁移文件
models模型文件
seeders种子文件
好了,这节课就先到这里了,只要大家看到自己项目里出现了这些东西,就算大功告成了。我们下一节课再来详细说一说它们该怎么使用。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|知行合一

GMT+8, 2026-10-3 15:57 , Processed in 0.072387 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表