Objekt eingebautes Objekt

Objektrouting

Routing-Objekt des Nachrichtenprozessors

Das Routing-Objekt ist das Kernobjekt der http Nachrichtenverarbeitung. Der Server stimmt die url und die Methode gemäß der Einstellung der Route ab und leitet die http Nachricht an den entsprechenden Prozessor weiter, um verschiedene Transaktionen abzuschließen.

Eine einfache Route kann direkt in Form eines JSON-Objekts bereitgestellt werden, z.

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

Wenn Sie eine komplexere Routing-Anpassung benötigen, können Sie selbst ein Routing-Objekt erstellen und die Routing-Strategien nach Bedarf handhaben:

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

Das Routing-Objekt stimmt mit der Nachricht gemäß den festgelegten Regeln überein und leitet die Nachricht an den ersten Prozessor weiter, der die Regeln erfüllt. Die später hinzugefügten Routing-Regeln werden zuerst abgeglichen. So erstellen Sie:

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

Elemente, die mit regulären Ausdrücken übereinstimmen, ändern das Wertattribut der Nachricht, und Unterelemente werden im params-Attribut der Nachricht gespeichert. Zum Beispiel:

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

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

Wenn das übereinstimmende Ergebnis keine Unterelemente enthält, ist der Wert leer und params ist leer. Zum Beispiel:

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

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

Wenn das übereinstimmende Ergebnis auf der ersten Ebene mehrere Unterelemente enthält, ist der Wert leer und params ist das Unterelement der ersten Ebene. Zum Beispiel:

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

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

Wenn das übereinstimmende Ergebnis nur ein Unterelement und keine Unterelemente enthält, sind sowohl value als auch params dieses Unterelement. Zum Beispiel:

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

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

Vererbung

Konstruktor

Routing

Erstellen Sie ein Nachrichtenprozessor-Routingobjekt

1
new Routing(Object map = {});

Parameter aufrufen:

  • map : Objekt, anfängliche Routing-Parameter

Erstellen Sie ein Nachrichtenprozessor-Routingobjekt

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

Parameter aufrufen:

  • method : String, gibt die http Anforderungsmethode an. "*" akzeptiert alle Methoden
  • map : Objekt, anfängliche Routing-Parameter

Mitgliedsfunktion

append

Wenn Sie Regeln aus vorhandenen Routingobjekten hinzufügen, wird die ursprüngliche Route nach dem Hinzufügen gelöscht

1
Routing Routing.append(Routing route);

Parameter aufrufen:

  • route : Routing, das initialisierte Routing-Objekt

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Reihe von Routing-Regeln hinzu

1
Routing Routing.append(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu

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

Parameter aufrufen:

  • method : String, gibt die http Anforderungsmethode an, "*" akzeptiert alle Methoden, "host" gibt den Namen der virtuellen Domäne an
  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

host

Fügen Sie eine Reihe von Routing-Regeln für http Domänennamen hinzu

1
Routing Routing.host(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die http Domänennamen akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

all

Fügen Sie eine Reihe von Routing-Regeln hinzu, die alle http Methoden akzeptieren

1
Routing Routing.all(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die alle http Methoden akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

get

Fügen Sie eine Reihe von Routing-Regeln für GET-Methoden hinzu

1
Routing Routing.get(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http GET-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

post

Fügen Sie eine Reihe von Routing-Regeln hinzu, die die http POST-Methode akzeptieren

1
Routing Routing.post(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http POST-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

del

Fügen Sie eine Reihe von Routing-Regeln hinzu, die die http DELETE-Methode akzeptieren

1
Routing Routing.del(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http DELETE-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , der Prozessor aufgebaut Nachrichtenverarbeitungsfunktionen, das Array Chaining, route Objekt finden mq.Handler

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

put

Fügen Sie eine Reihe von Routing-Regeln für PUT-Methoden hinzu

1
Routing Routing.put(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http PUT-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

patch

Fügen Sie eine Reihe von Routing-Regeln für PATCH-Methoden hinzu

1
Routing Routing.patch(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http PATCH-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

find

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

1
Routing Routing.find(Object map);

Parameter aufrufen:

  • map : Objekt, Routing-Parameter

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

Fügen Sie eine Routing-Regel hinzu, die die http FIND-Methode akzeptiert

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

Parameter aufrufen:

  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Ergebnis zurückgeben:

  • Routing , gibt das Routing-Objekt selbst zurück

invoke

Behandeln Sie eine Nachricht oder ein Objekt

1
Handler Routing.invoke(object v) async;

Parameter aufrufen:

  • v : object , geben Sie die Nachricht oder das Objekt an, die verarbeitet werden sollen

Ergebnis zurückgeben:

  • Handler , kehren Sie zum nächsten Prozessor zurück

toString

Gibt die Zeichenfolgendarstellung des Objekts zurück, gibt im Allgemeinen "[Native Object]" zurück. Das Objekt kann gemäß seinen eigenen Merkmalen neu implementiert werden

1
String Routing.toString();

Ergebnis zurückgeben:

  • String , gibt eine String-Darstellung des Objekts zurück

toJSON

Gibt die JSON-Darstellung des Objekts zurück und gibt im Allgemeinen eine Sammlung lesbarer Attribute zurück, die vom Objekt definiert wurden

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

Parameter aufrufen:

  • key : String, unbenutzt

Ergebnis zurückgeben:

  • Value , gibt einen Wert zurück, der serialisierbares JSON enthält