淺談express 中介軟體機制及實現原理
中介軟體機制可以讓我們在一個給定的流程中新增一個處理步驟,從而對這個流程的輸入或者輸出產生影響,或者產生一些中作用、狀態,或者攔截這個流程。中介軟體機制和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 |
|