Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。
Koa 的 Context 把 node 的 request, response 对象封装进一个单独对象, 并提供许多开发 web 应用和 APIs 有用的方法. 那些在 HTTP server 开发中使用非常频繁操作, 直接在 Koa 里实现, 而不是放在更高层次的框架, 这样中间件就不需要重复实现这些通用的功能。每个请求会创建属于此请求的ctx对象。并且ctx对象会在koa中间件中传递
Context 的许多访问器和方法直接委托为他们的 ctx.request 或 ctx.response 的 等价方法, 用于访问方便, 是完全相同的. 比如ctx.type 和 ctx.length 委托与 response 对象, ctx.path 和 ctx.method 委托与 request.
不知道为什么在函数里输出ctx的时候ctx.response里没有body属性。但是输出ctx.response时就能看到body???
context对象应该是简单的,但是个人目前感觉难在使用他实现功能上。
参考的文章:更具体的解释