本文koa版本是2.2.0
创建koa服务:
- 创建koa的app对象
- 为app添加中间件
- 监听端口,创建server
下面是一个简单的示例:
当请求http://localhost:3000/时,页面返回'Hello World’
中间件执行顺序
命令行里面顺序打印日志:’x-response-time start’ –> ‘logger start’ –> ‘hello world’ –> ‘logger end’ –> ‘x-response-time end’
async异步函数
从请求到响应类似下图
分析代码
app对象结构
创建Koa的app对象,Application继承Emitter对象,代码结构如下
添加中间件
koa的中间件是很重要,使用app.use()添加中间件
创建http服务
app.listen()监听端口,listen是createServer()的封装
接收到请求时的回调函数
当服务接收到http请求时,触发callback函数,
中间件
compose返回一个用于执行中间件的函数,在callback()函数执行fn(ctx),从dispatch(0)开始,执行第一个中间件函数,然后递归执行dispatch(i),执行中间件函数,直到执行完所有中间件函数
context保存请求,响应对象
context上下文用于管理请求,响应
请求和响应委托(Delegator)给context
|
|
response body 处理
分三种情况string,buffer,stream