オブジェクト組み込みオブジェクト

オブジェクトルーティング

メッセージ ハンドラー ルーティング オブジェクト

ルーティング オブジェクトは http メッセージ処理のコアオブジェクトであり、サーバーはルーティング設定に従って一致します url そして方法、そして http メッセージは、さまざまなトランザクションを完了するために、対応するプロセッサに転送されます。

単純なルートは、次のような JSON オブジェクトの形式で直接提供できます。

1 2 3 4 5 6 7 8
var http = require('http'); var svr = new http.Server(8080, { '/': r => r.response.write('home'), '/help': r => r.response.write('help') }); svr.start();

より複雑なルーティングのカスタマイズが必要な場合は、ルーティング オブジェクトを自分で作成し、必要に応じてルーティング戦略を処理できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var 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 4
var routing = new mq.Routing({ "^/func1(/.*)$": func1, "^/func2(/.*)$": func2 });

正規表現に一致するアイテムはメッセージの value 属性を変更し、サブアイテムはメッセージの params 属性に保存されます。例えば:

1 2 3
var routing = new mq.Routing({ "^/func1(/([0-9]+)/([0-9]+)\.html)$": func1, });

メッセージ "/func1/123/456.html" に一致した後、value == "/123/456.html", params == ["123", "456"];

一致する結果に子がない場合、値は空で、params は空です。例えば:

1 2 3
var routing = new mq.Routing({ "^/func1/[0-9]+/[0-9]+\.html$": func1, });

メッセージ "/func1/123/456.html" に一致した後、value == ""、params == [];

一致する結果の第 1 レベルに複数のサブアイテムがある場合、値は空で、params は第 1 レベルのサブアイテムです。例えば:

1 2 3
var routing = new mq.Routing({ "^/func1/([0-9]+)/([0-9]+)\.html$": func1, });

メッセージ "/func1/123/456.html" に一致した後、 value == "", params == ["123", "456"];

一致する結果にサブアイテムが 1 つだけあり、サブアイテムがない場合、value と params は両方ともこのサブアイテムです。例えば:

1 2 3
var routing = new mq.Routing({ "^/func1/([0-9]+)/[0-9]+\.html$": func1, });

メッセージ "/func1/123/456.html" に一致した後、value == "123"、params == ["123"];

継承

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>Handler|new Handler()|invoke()] [<this>Routing|new Routing()|append();host();all();get();post();del();put();patch();find()] [object] <:- [Handler] [Handler] <:- [Routing] Handler new Handler() invoke() Routing new Routing() append() host() all() get() post() del() put() patch() find() object toString() toJSON()

コンストラクタ

Routing

メッセージ ハンドラー ルーティング オブジェクトを作成する

1
new Routing(Object map = {});

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータの初期化

メッセージ ハンドラー ルーティング オブジェクトを作成する

1 2
new Routing(String method, Object map);

呼び出しパラメータ:

  • method: 文字列、指定 http リクエスト方法、「*」はすべての方法を受け入れます
  • map: オブジェクト、ルーティング パラメータの初期化

メンバー関数

append

既存のルート オブジェクトからルールを追加します。追加後に元のルートはクリアされます

1
Routing Routing.append(Routing route);

呼び出しパラメータ:

  • route: ルーティング、初期化されたルーティング オブジェクト

結果を返す:

  • Routing、ルートオブジェクト自体を返す

一連のルーティング ルールを追加する

1
Routing Routing.append(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

ルーティング ルールを追加する

1 2
Routing Routing.append(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

ルーティング ルールを追加する

1 2 3
Routing Routing.append(String method, String pattern, Handler hdlr);

呼び出しパラメータ:

  • method: 文字列、指定 http リクエスト方法、「*」はすべての方法を受け入れ、「ホスト」は仮想ドメイン名を指定します
  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

host

グループを追加 http ドメイン名ルーティング規則

1
Routing Routing.host(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http ドメイン名ルーティング規則

1 2
Routing Routing.host(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

all

グループを追加してすべてを受け入れる http メソッド ルーティング ルール

1
Routing Routing.all(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

1つ追加 すべてを受け入れる http メソッド ルーティング ルール

1 2
Routing Routing.all(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

get

一連の GET メソッド ルーティング ルールを追加する

1
Routing Routing.get(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http GET メソッドのルーティング ルール

1 2
Routing Routing.get(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

post

受け入れるグループを追加 http POST メソッドのルーティング ルール

1
Routing Routing.post(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http POST メソッドのルーティング ルール

1 2
Routing Routing.post(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

del

受け入れるグループを追加 http DELETE メソッドのルーティング ルール

1
Routing Routing.del(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http DELETE メソッドのルーティング ルール

1 2
Routing Routing.del(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

put

一連の PUT メソッド ルーティング ルールを追加する

1
Routing Routing.put(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http PUT メソッドのルーティング ルール

1 2
Routing Routing.put(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

patch

PATCH メソッドのルーティング ルールのセットを追加する

1
Routing Routing.patch(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http PATCH メソッドのルーティング ルール

1 2
Routing Routing.patch(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

find

FIND メソッドのルーティング ルールのセットを追加する

1
Routing Routing.find(Object map);

呼び出しパラメータ:

  • map: オブジェクト、ルーティング パラメータ

結果を返す:

  • Routing、ルートオブジェクト自体を返す

承諾を追加 http FIND メソッドのルーティング ルール

1 2
Routing Routing.find(String pattern, Handler hdlr);

呼び出しパラメータ:

  • pattern: 文字列、メッセージ マッチング形式
  • hdlr: Handler、組み込みのメッセージ プロセッサ、処理関数、チェーン処理配列、ルーティング オブジェクト、詳細を参照 mq.Handler

結果を返す:

  • Routing、ルートオブジェクト自体を返す

invoke

メッセージまたはオブジェクトを処理する

1
Handler Routing.invoke(object v) async;

呼び出しパラメータ:

  • v: object、処理するメッセージまたはオブジェクトを指定します

結果を返す:

  • Handler, 次のプロセッサに戻る

toString

オブジェクトの文字列表現を返します。通常は「[ネイティブ オブジェクト]」を返します。オブジェクトは独自の特性に従って再実装できます。

1
String Routing.toString();

結果を返す:

  • String、オブジェクトの文字列表現を返します

toJSON

オブジェクトの JSON 形式の表現を返します。通常は、オブジェクトによって定義された読み取り可能な属性のコレクションを返します。

1
Value Routing.toJSON(String key = "");

呼び出しパラメータ:

  • key: ストリング、未使用

結果を返す:

  • Value、シリアライズ可能なJSONを含む値を返します