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

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

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

ルーティングオブジェクトは 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"];

一致する結果に子がない場合、値は空であり、パラメータは空です。例えば:

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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る mq.Handler

戻り結果:

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

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

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

呼び出しパラメーター:

  • method:文字列、指定 http リクエストメソッド、「*」はすべてのメソッドを受け入れ、「host」は仮想ドメイン名を指定します
  • pattern:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る mq.Handler

戻り結果:

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

host

グループを追加する http ドメイン名のルーティングルール

1
Routing Routing.host(Object map);

呼び出しパラメーター:

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

戻り結果:

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

承認を追加する http ドメイン名のルーティングルール

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

呼び出しパラメーター:

  • pattern:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る 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:文字列、メッセージマッチング形式
  • hdlrHandler、内蔵メッセージプロセッサ、処理機能、チェーン処理配列、ルーティングオブジェクト、詳細を見る mq.Handler

戻り結果:

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

invoke

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

1
Handler Routing.invoke(object v) async;

呼び出しパラメーター:

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

戻り結果:

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

toString

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

1
String Routing.toString();

戻り結果:

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

toJSON

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

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

呼び出しパラメーター:

  • key:文字列、未使用

戻り結果:

  • Value、シリアル化可能なJSONを含む値を返します