Skip to content

Commit 88e6f18

Browse files
committed
feat(connect): 簡単なしくみについてを追加
1 parent b97fb1c commit 88e6f18

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

ja/connect/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,20 @@ Connectでは`app.stack`にまだに_middleware_が保持されています。
8484
`next()`がないということは`hello.js`がこの連続する_middleware_の最後となっていることがわかります。
8585
仮に、これより先に_middleware_が登録されていたとしても無視されます。
8686

87+
つまり、処理的には以下のようにstackを先頭から一個づつ取り出して、処理していくという方法が取られています。
88+
89+
```js
90+
let req = "...",
91+
res = "...";
92+
function next(){
93+
let middleware = app.stack.shift();
94+
// nextが呼ばれれば次のmiddleware
95+
middleware(req, res, next);
96+
}
97+
next();// 初回
98+
```
99+
100+
87101
このような_middleware_を繋げた形を_middleware stack_と呼ぶことがあります。
88102

89103
HTTPサーバではこのような_middleware stack_を作って使うものは既にあり、
@@ -94,3 +108,7 @@ Rackを参考にして実装されています。
94108

95109
- [Ruby - Rack解説 - Rackの構造とRack DSL - Qiita](http://qiita.com/higuma/items/838f4f58bc4a0645950a#2-5 "Ruby - Rack解説 - Rackの構造とRack DSL - Qiita")
96110

111+
次に、この_middleware stack_をどう処理しているのかを、
112+
具体的な実装を書きながら見て行きましょう。
113+
114+
## 実装してみよう

0 commit comments

Comments
 (0)