Objekt eingebautes Objekt

Objektrouting

Routing-Objekt für den Nachrichtenhandler

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

Eine einfache Route kann direkt als JSON-Objekt 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 Routing-Objekte selbst erstellen und die Routing-Richtlinien nach Bedarf verwalten:

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 der Regel entspricht. Die später hinzugefügten Routing-Regeln stimmen zuerst überein. Erstellungsmethode:

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 Ergebnis der Übereinstimmung keine untergeordneten Elemente enthält, ist der Wert leer und die Parameter sind 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 sich auf der ersten Ebene der Übereinstimmung mehrere untergeordnete Elemente befinden, ist der Wert leer und params ist die erste untergeordnete 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 Ergebnis der Übereinstimmung nur ein Kind hat und keine Unterkinder vorhanden sind, sind sowohl value als auch params dieses Kind. 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 Routing-Objekt für den Nachrichtenhandler

1
new Routing(Object map = {});

Parameter aufrufen:

  • map : Objekt, Routenparameter initialisieren

Erstellen Sie ein Routing-Objekt für den Nachrichtenhandler

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

Parameter aufrufen:

  • method : String, gibt die http Anforderungsmethode an. "*" akzeptiert alle Methoden
  • map : Objekt, Routenparameter initialisieren

Mitgliedsfunktion

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

Parameter aufrufen:

  • route : Routing, das initialisierte Routing-Objekt

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

  • 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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 und "host" gibt den Namen der virtuellen Domäne an
  • pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
  • hdlr : Handler , integrierter Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

  • 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

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

all

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

1
Routing Routing.all(Object map);

Parameter aufrufen:

  • map : Objekt, Routenparameter

Gibt das Ergebnis zurück:

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

Fügen Sie eine 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

  • 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

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

post

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

1
Routing Routing.post(Object map);

Parameter aufrufen:

  • map : Objekt, Routenparameter

Gibt das Ergebnis zurück:

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

Fügen Sie eine 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

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

del

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

1
Routing Routing.del(Object map);

Parameter aufrufen:

  • map : Objekt, Routenparameter

Gibt das Ergebnis zurück:

  • 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 , integrierter Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

  • 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

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

Fügen Sie eine 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

  • 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, Routenparameter

Gibt das Ergebnis zurück:

  • 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 Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details

Gibt das Ergebnis zurück:

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

invoke

Nachricht oder Objekt verarbeiten

1
Handler Routing.invoke(object v) async;

Parameter aufrufen:

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

Gibt das Ergebnis zurück:

  • Handler , gibt den nächsten Handler zurück

toString

Gibt eine Zeichenfolgendarstellung des Objekts zurück, normalerweise "[Native Object]". Objekte können gemäß ihren eigenen Merkmalen neu implementiert werden

1
String Routing.toString();

Gibt das Ergebnis zurück:

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

toJSON

Gibt eine JSON-Darstellung des Objekts zurück, die normalerweise eine Sammlung lesbarer Eigenschaften zurückgibt, die vom Objekt definiert wurden

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

Parameter aufrufen:

  • key : String, unbenutzt

Gibt das Ergebnis zurück:

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