是否在纠结是不是要加逗号
应该不用写成这样了
1 2 3 4 5 |
|
聚沙
KOA
http://book.apebook.org/minghe/koa-action/index.html
http://javascript.ruanyifeng.com/nodejs/koa.html
Koa 应用是一个包含中间件 generator 方法数组的对象。当请求到来时, 这些方法会以 stack-like 的顺序执行, 从这个角度来看,Koa 和其他中间件系统(比如 Ruby Rack 或者 Connect/Express )非常相似.
比如内容协商(content-negotation)、缓存控制(cache freshness)、反向代理(proxy support)重定向等常见功能都由中间件来实现. 将类似常见任务分离给中间件实现, Koa 实现了异常精简的代码.
Hello world
1 2 3 4 5 6 7 8 |
|
app.use 方法用于向 middleware 数组添加 Generator 函数。Generator 函数的参数 next
,表示下一个中间件。
Generator 函数内部使用 yield
命令,将程序的执行权转交给下一个中间件,即 yield next
,要等到下一个中间件返回结果,才会继续往下执行。
意味着:只要有一个中间件缺少 yield next
语句,后面的中间件都不会执行
传参
由于 Koa 要求中间件唯一的参数就是 next,导致如果要传入其他参数,必须另外写一个返回 Generator 函数的函数。
1 2 3 4 5 6 7 8 9 10 11 |
|
context
中间件当中的 this
表示上下文对象 context,代表一次 HTTP 请求和回应,即一次访问/回应的所有信息,都可以从上下文对象获得。
context 对象封装了 request 和 response 对象,并且提供了一些辅助方法。每次 HTTP 请求,就会创建一个新的 context 对象。
克隆指定分支
1
|
|
example
1
|
|
乱弹
- 万般皆可套路
- 只会抱怨的人也只剩下抱怨了