感觉代码不多,就生看代码了,从application.js
开始。
debug
|
|
这个库的使用,看起来还是很不错的,可以控制输出哪些debug信息,以后项目中可以用下
customize打印application对象
|
|
|
|
因为还有context
,request
,response
等对象,可能并没有toString的方法,就不输出它们,这里定制的方式值得学习一下:this[util.inspect.custom] = this.inspect
use()
就是简单的把中间件放到自己的middleware
中:
|
|
callback()
koa的listen其实就是:
|
|
自己的东西的注入,都是在callback()
里完成的
node文档:
http.createServer([options][, requestListener])
The requestListener is a function which is automatically added to the'request'
event.
意思大概就是,每次有request时间,都会调用这个函数吧。
在里边封装了自己的处理方式:
|
|
compose()
嗯,其实就是把所有的中间件串起来,Promise
的使用,自己还是需要学习啊
createContext(req, res)
对原来的request
和response
的一个封装
|
|
其实还是很简单的,就主要是几个绑定,互相绑一绑,然后和node原来的req, res绑一绑
handleRequest(ctx, fn)
|
|
其实有些看不太懂…
为什么,要用handleResponse
而不直接用respond
,为什么用ctx,而不用middleware处理之后的ctx
为什么要有onFinish()
,感觉并不会有什么用
respond
这个helper function,里边就是各种对不同情况的处理,这个看具体response的源码的时候再说吧
嗯,感觉看完application.js
,也就那么回事,就是处理中间件,而已,可能这就是Koa有趣的地方吧,精简的核心,统一的接口,无限可能的拓展。