引言
nodejs 开发框架有很多种,比如Express,Koa, Egg,它们之间又有什么关系,关联呢?
可以这么说,Express是爷爷,那Koa就是儿子,而Egg就是孙子,当然这里并不是说它们的能力,而是说它们的来历。
Koa是一个新的web框架,由Express幕后的原班人马打造, 致力于成为web应用和API开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用async函数,Koa帮你丢弃回调函数,并有力地增强错误处理。Koa并没有捆绑任何中间件, 而是提供了一套优雅的方法。
egg.js是阿里旗下的一个基于nodejs和koa2的企业级应用框架,基于es6,es7 和nodejs,是『约定优先于配置』的一个Node.jsweb框架Egg奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开发人员的学习成本,开发人员不再是『钉子』,可以流动起来。没有约定的团队,沟通成本是非常高的,比如有人会按目录分栈而其他人按目录分功能,开发者认知不一致很容易犯错。但约定不等于扩展性差,相反Egg有很高的扩展性,可以按照团队的约定定制框架。使用Loader可以让框架根据不同环境定义默认配置,还可以覆盖Egg的默认约定。
到这里大家应该都明白它们之间的关系了,但是它们之间又有什么区别呢?
一句话总结: koa,express,都是偏底层的无态度的Web框架;egg.js是在koa的基础上做了一层很好的面向大型企业级应用的框架封装, 中小型项目推荐egg.js,上手快,概念易懂。
而这里,我们不需要关心那么多,直接用最原生的Express框架+Sequelize链接Mysql数据库。
安装环境
本地数据库
小白推荐大家安装,phpstudy,里面集成了Apache,Nginx,MySql,Ftp等
本地数据库管理工具,大家可以自行下载,有的可以忽略
链接:pan.baidu.com/s/15VSP0lgU…
提取码:4hhz
支持链接数据库种类非常之多,免费、免费、免费。
(1)安装完成后,开始连接数据库
(2)双击打开连接后,右击连接名称,新建数据库
(3)库建好后,可以点击上面的新建表
(4)新建表时,点击添加字段,每个表都需要添加一个主键,可以默认勾选下面的自增,这样没插入一条数据,就会自动增长,不需要人工干预
(4)时间自动,create_time是每次插入都会记录插入的时间,update_time是每次更新数据时都会记录更新时间。记住设置的区别。
ok,有了第一个表,开始撸码时间
Express搭建一个web服务
1、本地工程下面新建一个package.json
1 | json复制代码{ |
2、安装插件
1 | bash复制代码npm install express sequelize mysql2 cross-env --save |
1 | bash复制代码npm install nodemon --save-dev |
3、根目录新建index.js
1 | javascript复制代码 |
4、启动服务
1 | bash复制代码npm run dev |
打印"The server is running at *: 8111服务已经启动,打开浏览器,输入http://localhost:8111/
服务正常,接下来连接数据
Sequelize连接数据库
1、更目录新建config目录,存放项目的一些配置js,然后新建config/db.js
1 | javascript复制代码/** |
2、更目录新建db目录,存放数据库model以及sequelize配置
此时项目目录
3、db/sequelize.js配置
1 | javascript复制代码var Sequelize = require('sequelize') |
4、db/model/user.js配置,这里的字段和数据库对应起来
1 | javascript复制代码/** |
Sequelize数据类型与数据库类型对应关系
1 | javascript复制代码Sequelize.STRING // VARCHAR(255) |
5、测试连接
index.js导入db/model/user.js测试一波
1 | javascript复制代码... |
打印执行的sql,和结果,由于我们新建数据库没有插入数据,此时打印的是一个空数组[]
我们去数据库新建一条数据,大家看好我们只填入姓名、性别和年龄,id和时间都会自动插入
在查询一次,直接修改index.js,保存程序自动热更新
数据查询回来了,本节就到此结束了,希望大家都有所收获。
本文转载自: 掘金