File tree 1 file changed +46
-0
lines changed
1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ ## koa2 源码阅读
2
+
3
+ ### 核心文件
4
+
5
+ #### application.js
6
+ application 就是 koa 库默认导出的对象
7
+
8
+ 此对象有如下方法:
9
+
10
+ * ** constructor**
11
+ * 对象初始化,设置默认配置
12
+ * ** listen**
13
+ * 创建 server,并设置 http 回调至当前 koa 实例的工具方法
14
+ * toJSON
15
+ * 自定义当前实例 toJson 对象,仅返回部分字段
16
+ * inspect
17
+ * 用来自定义 console.log 输出值(util.inspect.custom)
18
+ * ** use**
19
+ * 用来录入中间件,保存至实例的 middleware 中去
20
+ * ** callback**
21
+ * 创建并返回 http 响应的回调函数,在回调函数中已组合中间件, 并根据 req,res 创建好了 koa 上下文
22
+ * ** handleRequest**
23
+ * 执行串联好的中间件,并在中间件执行完毕后,使用 res 返回给客户端响应数据(返回方法也在此文件实现,但并未导出)
24
+ * ** createContext**
25
+ * 初始化一个 context,在中间件执行中,作为参数传递
26
+ * ** onerror**
27
+ * 默认的 error 响应函数
28
+
29
+ #### context.js
30
+ context 是一个上下文对象,每一个 http 请求,都会对应一个上下文,上下文包含了 req, res 等信息,并且代理了部分 req 和 res 的相关方法
31
+
32
+ context 返回的是一个对象,这个对象在 application 创建 context 时作为原型使用,此原型有如下方法:
33
+
34
+ * inspect
35
+ * 自定义输出
36
+ * toJSON
37
+ * 自定义转 json 对象
38
+ * assert
39
+ * 实际上是 httpAssert 的引用,便于 ctx 断言条件抛出响应错误,如:`ctx.assert(ctx..user, 401, 'Please login!');`
40
+ * throw
41
+ * 实际上转调 createError,并抛出异常,如:`ctx.throw(403)`, `ctx.throw(403,'name required')` 等
42
+
43
+
44
+ #### request.js
45
+ #### response.js
46
+
You can’t perform that action at this time.
0 commit comments