brunoyang/blog

koa源码分析(二) - context.js

brunoyang opened this issue · 0 comments

本文分为四个部分,分别对应源码的四个文件。

依赖

  • createError: 将小于500的错误往前端报,大于500的内部消化
  • delegate:将某个对象的方法代理至某个对象上

源码分析

context暴露了一个对象,包含了多个方法,并将request和response的方法代理到自己身上。

onerror

this.app继承自event.emitter,通过error事件触发onerror。onerror方法将取得的error code设置为传入err的status,默认为500,在设置完http相应的长度、状态码及body后,发送该响应至用户。

request和response

143~191行,通过delegate方法将response的request的方法绑定至context上。