オブジェクトルーティング
メッセージハンドラルーティングオブジェクト
ルーティングオブジェクトはhttpメッセージ処理の中核オブジェクト。サーバーはルーティング設定に従って照合します。urlと方法と意志httpメッセージは、対応するプロセッサに転送されて、さまざまなトランザクションを完了します。
次のような単純なルートを JSON オブジェクトとして直接提供できます。
1
2
3
4
5
6
7
8var http = require('http');
var svr = new http.Server(8080, {
'/': r => r.response.write('home'),
'/help': r => r.response.write('help')
});
svr.start();
より複雑なルーティングのカスタマイズが必要な場合は、Routing オブジェクトを自分で作成し、必要に応じてルーティング戦略を処理できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var http = require('http');
var mq = require('mq');
var app = new mq.Routing();
app.get('/', r => r.response.write('home'));
app.get('/help', r => r.response.write('help'));
app.post('/help', r => r.response.write('post a help.'));
app.get('/home/:user', (r, user) => r.response.write('hello ' + user));
app.get('/user/:id(\\d+)', (r, id) => r.response.write('get ' + id));
app.get('/actions', {
'/run': r => r.response.write('running'),
'/sleep': r => r.response.write('sleeping'),
'(.*)': r => r.response.write('........')
});
var svr = new http.Server(8080, app);
svr.start();
ルーティング オブジェクトは、設定されたルールに従ってメッセージを照合し、ルールを満たす最初のプロセッサにメッセージを配信します。後で追加されたルーティング ルールが最初に一致します。作成方法:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
正規表現によって一致した項目はメッセージの value 属性を変更し、サブ項目はメッセージの params 属性に格納されます。例えば:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
メッセージ「/func1/123/456.html」と一致した後、value == "/123/456.html"、params == ["123", "456"];
一致した結果に子がない場合、value は空で、params も空です。例えば:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
メッセージ「/func1/123/456.html」と一致した後、value == ""、params == [];
一致結果の第 1 レベルに複数のサブ項目がある場合、value は空で、params が第 1 レベルのサブ項目になります。例えば:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
メッセージ「/func1/123/456.html」と一致した後、value == ""、params == ["123", "456"];
一致した結果にサブキーが 1 つだけあり、従属サブキーがない場合、value と params の両方がこのサブキーになります。例えば:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
メッセージ「/func1/123/456.html」と一致した後、value == "123"、params == ["123"];
相続関係
コンストラクタ
Routing
メッセージ ハンドラー ルーティング オブジェクトを作成する
1new Routing(Object map = {});
呼び出しパラメータ:
- map: オブジェクト、初期化ルーティングパラメータ
メッセージ ハンドラー ルーティング オブジェクトを作成する
1
2new Routing(String method,
Object map);
呼び出しパラメータ:
- method: 文字列、指定しますhttpリクエストメソッド、「*」はすべてのメソッドを受け入れます
- map: オブジェクト、初期化ルーティングパラメータ
メンバー関数
append
既存のルーティング オブジェクトからルールを追加します。追加後、元のルートはクリアされます。
1Routing Routing.append(Routing route);
呼び出しパラメータ:
- route: ルーティング、初期化されたルーティング オブジェクト
返される結果:
- Routing、ルートオブジェクト自体を返します
一連のルーティング ルールを追加する
1Routing Routing.append(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
ルーティングルールを追加する
1
2Routing Routing.append(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
ルーティングルールを追加する
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
呼び出しパラメータ:
- method: 文字列、指定しますhttpリクエストメソッド。「*」はすべてのメソッドを受け入れます。「host」は仮想ドメイン名を指定します。
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
host
グループを追加するhttpドメイン名のルーティング ルール
1Routing Routing.host(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpドメイン名のルーティング ルール
1
2Routing Routing.host(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
all
すべてを受け入れるグループを追加するhttpメソッドルーティングルール
1Routing Routing.all(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
すべてを受け入れる行を追加しますhttpメソッドルーティングルール
1
2Routing Routing.all(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
get
GET メソッドのルーティング ルールのセットを追加する
1Routing Routing.get(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpGET メソッドのルーティング ルール
1
2Routing Routing.get(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
post
一連の承認を追加するhttpPOSTメソッドのルーティングルール
1Routing Routing.post(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpPOSTメソッドのルーティングルール
1
2Routing Routing.post(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
del
一連の承認を追加するhttpDELETE メソッドのルーティング ルール
1Routing Routing.del(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpDELETE メソッドのルーティング ルール
1
2Routing Routing.del(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
put
PUT メソッドのルーティング ルールのセットを追加する
1Routing Routing.put(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpPUT メソッドのルーティング ルール
1
2Routing Routing.put(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
patch
PATCH メソッドのルーティング ルールのセットを追加する
1Routing Routing.patch(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpPATCH メソッドのルーティング ルール
1
2Routing Routing.patch(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
find
FIND メソッドのルーティング ルールのセットを追加する
1Routing Routing.find(Object map);
呼び出しパラメータ:
- map: オブジェクト、ルーティングパラメータ
返される結果:
- Routing、ルートオブジェクト自体を返します
承諾を追加httpFIND メソッドのルーティング ルール
1
2Routing Routing.find(String pattern,
Handler hdlr);
呼び出しパラメータ:
- pattern: 文字列、メッセージ一致形式
- hdlr:Handler、組み込みメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照mq.Handler
返される結果:
- Routing、ルートオブジェクト自体を返します
invoke
メッセージまたはオブジェクトを処理する
1Handler Routing.invoke(object v) async;
呼び出しパラメータ:
- v:object、処理するメッセージまたはオブジェクトを指定します
返される結果:
- Handler、次のプロセッサに戻ります
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String Routing.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value Routing.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します