koa1 源码详解1

koa的核心设计 是由 koa 与 koa-compose两个包构成的。 包含了 上下文context的创建引用,中间件的概念及其合并执行的机制。

 

application.js

koa1.0中直接将context绑定到了中间件中的this引用,koa2.0 将context作为参数传给中间件

 创建context:

// context 的req res 就是node 的req res
// context.app koa的实例
// context.request ,context.response koa的request,response,包含了context引用,和req ,res。

 

context.js

巧妙的是用到delegates库(基于es6 get,set ) 。将一个对象上的方法,属性委托到另一个对象上。 所以context可直接调用request ,response属性中的方法。(看源码很重要,很长一段时间都有这个疑惑)

 

posted @ 2017-04-06 12:42  break_happy  Views(316)  Comments(0Edit  收藏  举报