1.KOA2的介绍
- 基于 Node.js 平台的Web服务器框架
- 由 Express 原班人马打造
- Express Koa , Koa2 都是 Web 服务器的框架,他们之间的差别和关系可以通过下面这个表格表示出
洋葱模型的中间件
如下图所示
,
对于服务器而言,它其实就是来处理一个又一个的请求,
Web
服务器接收由浏览器发过来的一个又一个请求之后,它形成一个又一个的响应返回给浏览器.
而请求到达我们的服务器是需要经过程序处理的,
程序处理完之后才会形成响应,返回给浏览器,我们服务器处理请求的这一块程序,在 Koa2
的世界当中就把它称之为中间件

这种中间件可能还不止只有一个,可能会存在多个,比如上图所示,他就存在三层中间件,这三层中间件在处理请求的过程以及他调用的顺序为:
当一个请求到达咋们的服务器,最先处理这个请求的是第一层中间件
第一层的中间件在处理这个请求之后,他会把这个请求给第二层的中间件
第二层的中间件在处理这个请求之后,他会把这个请求给第三层的中间件
第三层中间件内部并没有中间件了,所以第三层中间件在处理完所有的代码之后,这个请求又会到了第二层的中间件,所以第二层中间件对这个请求经过了两次的处理
这个调用顺序就是洋葱模型, 中间件对请求的处理有一种先进后出的感觉,请求最先到达第一层中 间件,而最后也是第一层中间件对请求再次处理了一下
2.KOA2的快速上手
切换到自己要创建的目录下,首先检查Node的版本
node -v
koa2的使用要求Node版本在7.6以上
安装koa2
npm init -y
这个命令可以快速的创建出package.json的文件,这个文件可以维护项目中的第三方包的信息
npm install koa
这个命令可以在线的联网下载最新版本koa到当前项目中,由于线上最新版本的koa就是koa2,所以我们不需要执行npm install koa2
编写入口文件app.js
//1.创建koa对象
const Koa = require('koa') //导入构造方法
const app = new koa() //通过构造方法,创建实例对象
//2.编写响应函数(中间件)
//ctx:上下文,指的是所处于的web容器,我们可以通过ctx.request拿到请求对象,也可以通过ctx.response拿到响应对象
//next 内层中间件执行的入口
app.use((ctx,next)=>{
console.log(ctx.request.url)
ctx.response.body = 'hello world'
})
//3.指明端口号
app.listen(3000)
启动服务器
node app.js
这样koa2的第一个实例就完成啦!!!
打开浏览器,输入127.0.0.1:3000即可访问