File tree 1 file changed +28
-1
lines changed
1 file changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -20,4 +20,31 @@ Echoサーバとは、送られてきたリクエストの内容をそのまま
20
20
{
21
21
"key" : " value"
22
22
}
23
- ```
23
+ ```
24
+
25
+ ` app.use(middleware) ` という形で、_ middleware_と呼ばれる関数には` request ` や` response ` といったオブジェクトが渡されます。
26
+ そのため、リクエストみてフィルタリングしたり、任意のレスポンスを返したり出来るようになっています。
27
+
28
+ Echoサーバでは ` req.pipe(res); ` という形でリクエストをそのままレスポンスとして流す事で実現されています。
29
+
30
+ ### middlewareをモジュールとして実装
31
+
32
+ もう少し_middleware_をプラグインらしくモジュールとして実装したものを見てみます。
33
+
34
+ 次の[ connect-example.js] ( #connect-example.js ) では、あらゆるリクエストに対して、
35
+ ` "response text" ` というレスポンスを` "X-Content-Type-Options" ` ヘッダを付けて返すだけのものです。
36
+
37
+ それぞれの処理を_middleware_としてファイルを分けて実装し、` app.use(middleware) ` で処理を追加しています。
38
+
39
+ [ import errorHandler.js] ( ../../src/connect/errorHandler.js )
40
+
41
+ [ import nosniff.js] ( ../../src/connect/nosniff.js )
42
+
43
+ [ import hello.js] ( ../../src/connect/hello.js )
44
+
45
+ [ import connect-example.js] ( ../../src/connect/connect-example.js )
46
+
47
+ 基本的にどの_middleware_も` app.use(middleware) ` という形で拡張でき、
48
+ モジュールとして実装すれば再利用もしやすい形となっています。
49
+
50
+ > ** Note** _ middleware_となる関数の引数が4つであると、それはエラーハンドリングの_middleware_とするという、connectの独自のルールがあります。
You can’t perform that action at this time.
0 commit comments