Objekt eingebautes Objekt

Objekt-Routing

Routing-Objekt des Nachrichtenhandlers

Das Routing-Objekt ist http Das Kernobjekt der Nachrichtenverarbeitung, der Server passt entsprechend der Routing-Einstellung url Und Methode, und http Die Nachricht wird an den entsprechenden Prozessor weitergeleitet, um verschiedene Transaktionen abzuschließen.

Eine einfache Route kann direkt in Form eines JSON-Objekts bereitgestellt werden, wie zum Beispiel:

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();

Wenn Sie eine komplexere Routing-Anpassung benötigen, können Sie das Routing-Objekt selbst erstellen und die Routing-Strategie nach Bedarf bearbeiten:

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();

Das Routing-Objekt vergleicht die Nachricht gemäß den festgelegten Regeln und liefert die Nachricht an den ersten Prozessor, der die Regeln erfüllt. Die später hinzugefügten Routing-Regeln werden zuerst abgeglichen. Erstellungsmethode:

1 2 3 4
var routing = new mq.Routing({ "^/func1(/.*)$": func1, "^/func2(/.*)$": func2 });

Die vom regulären Ausdruck gefundenen Elemente ändern das Wertattribut der Nachricht, und die Unterelemente werden im Attribut params der Nachricht gespeichert. Z.B:

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

Nach dem Abgleich der Nachricht "/func1/123/456.html", value == "/123/456.html", params == ["123", "456"];

Wenn das übereinstimmende Ergebnis keine untergeordneten Elemente hat, ist value leer und params leer. Z.B:

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

Nach dem Abgleich der Nachricht "/func1/123/456.html", value == "", params == [];

Wenn das Übereinstimmungsergebnis mehrere Unterelemente in der ersten Ebene enthält, ist der Wert leer und params sind die Unterelemente der ersten Ebene. Z.B:

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

Nach dem Abgleich der Nachricht "/func1/123/456.html", value == "", params == ["123", "456"];

Wenn das übereinstimmende Ergebnis nur ein Unterelement und keine Unterelemente enthält, sind value und params beides Unterelemente. Z.B:

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

Nach dem Abgleich der Nachricht "/func1/123/456.html", value == "123", params == ["123"];

Nachlass

#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()

Konstrukteur

Routing

Erstellen Sie ein Message-Handler-Routing-Objekt

1
new Routing(Object map = {});

Aufrufparameter:

  • map: Objekt, Routing-Parameter initialisieren

Erstellen Sie ein Message-Handler-Routing-Objekt

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

Aufrufparameter:

  • method: String, spezifizieren http Anfragemethode, "*" akzeptiert alle Methoden
  • map: Objekt, Routing-Parameter initialisieren

Mitgliederfunktion

append

Fügen Sie eine Regel aus einem vorhandenen Routenobjekt hinzu, die ursprüngliche Route wird nach dem Hinzufügen gelöscht

1
Routing Routing.append(Routing route);

Aufrufparameter:

  • route: Routing, das initialisierte Routing-Objekt

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Fügen Sie eine Reihe von Routing-Regeln hinzu

1
Routing Routing.append(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Routingregel hinzufügen

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Routingregel hinzufügen

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

Aufrufparameter:

  • method: String, spezifizieren http Request-Methode, "*" akzeptiert alle Methoden, "host" gibt den virtuellen Domainnamen an
  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

host

Eine Gruppe hinzufügen http Routingregeln für Domainnamen

1
Routing Routing.host(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für Domainnamen

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

all

Fügen Sie eine Gruppe hinzu, um alle zu akzeptieren http Regeln für das Methodenrouting

1
Routing Routing.all(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Fügen Sie einen hinzu, akzeptieren Sie alle http Regeln für das Methodenrouting

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

get

Fügen Sie eine Reihe von Routingregeln für die GET-Methode hinzu.

1
Routing Routing.get(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für die GET-Methode

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

post

Eine Gruppe zum Akzeptieren hinzufügen http Routingregeln für die POST-Methode

1
Routing Routing.post(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für die POST-Methode

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

del

Eine Gruppe zum Akzeptieren hinzufügen http Routingregeln für Methode DELETE

1
Routing Routing.del(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für Methode DELETE

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

put

Fügen Sie eine Reihe von Routingregeln für die PUT-Methode hinzu

1
Routing Routing.put(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für die PUT-Methode

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

patch

Fügen Sie eine Reihe von Routingregeln für die PATCH-Methode hinzu

1
Routing Routing.patch(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http Routingregeln für die PATCH-Methode

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

find

Fügen Sie eine Reihe von Routingregeln für die FIND-Methode hinzu.

1
Routing Routing.find(Object map);

Aufrufparameter:

  • map: Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

Annahme hinzufügen http FIND-Methoden-Routing-Regeln

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

Aufrufparameter:

  • pattern: Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr: Handler, Eingebauter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungs-Array, Routing-Objekt, siehe Details mq.Handler

Ergebnis zurückgeben:

  • Routing, Das Routenobjekt selbst zurückgeben

invoke

Verarbeiten einer Nachricht oder eines Objekts

1
Handler Routing.invoke(object v) async;

Aufrufparameter:

  • v: object, Geben Sie die zu verarbeitende Nachricht oder das zu verarbeitende Objekt an

Ergebnis zurückgeben:

  • Handler, Zurück zum nächsten Prozessor

toString

Gibt die String-Darstellung des Objekts zurück, gibt im Allgemeinen "[Native Object]" zurück, das Objekt kann entsprechend seiner eigenen Eigenschaften neu implementiert werden

1
String Routing.toString();

Ergebnis zurückgeben:

  • String, Gibt die String-Darstellung des Objekts zurück

toJSON

Gibt die Darstellung des Objekts im JSON-Format zurück, gibt im Allgemeinen eine Sammlung von lesbaren Attributen zurück, die durch das Objekt definiert sind

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

Aufrufparameter:

  • key: String, unbenutzt

Ergebnis zurückgeben:

  • Value, Gibt einen Wert zurück, der JSON serialisierbar enthält