中间件机制可以让我们在一个给定的流程中添加一个处理步骤,从而对这个流程的输入或者输出产生影响,或者产生一些中作用、状态,或者拦截这个流程。中间件机制和tomcat的过滤器类似,这两者都属于责任链模式的具体实现。
express 中间件使用案例
1 2 3 4 5 6 7 8 9 10 |
|
模拟中间件机制并且模拟实现解析request的中间件
首先模拟一个request
1 2 3 4 5 |
|
一个http
请求分为请求行、请求头、和请求体,这三者之间通过\r\n\r\n
即一个空行来分割,这里假设已经将这三者分开,requestLine
(请求行)中有方法类型,请求url,http版本号,这三者通过空格来区分,headers
(请求头)中的各部分通过\r\n
来分割,requestBody
(请求体)中通过 & 来区分参数
模拟中间件机制
约定中间件一定是一个函数并且接受 request, response, next三个参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
对 request 处理的中间件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
测试代码
1 2 3 4 5 6 |
|
整体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
|
运行结果
将以上整体代码运行后将打印以下信息
1 2 3 4 5 |
|