ObjectRouting
Routingobjekt des Nachrichtenhandlers
Das Routing-Objekt isthttpDas Kernobjekt der Nachrichtenverarbeitung ist der Server, der entsprechend den Routing-Einstellungen übereinstimmturlund Methode und WillehttpNachrichten werden an entsprechende Prozessoren weitergeleitet, um verschiedene Transaktionen abzuschließen.
Eine einfache Route kann direkt als JSON-Objekt bereitgestellt werden, wie zum Beispiel:
1
2
3
4
5
6
7
8var 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 selbst ein Routing-Objekt erstellen und die Routing-Strategie nach Bedarf verwalten:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var 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 gleicht die Nachricht gemäß den festgelegten Regeln ab und übermittelt die Nachricht an den ersten Prozessor, der die Regeln erfüllt. Später hinzugefügte Routingregeln werden zuerst abgeglichen. Erstellungsmethode:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Die mit dem regulären Ausdruck übereinstimmenden Elemente ändern das Wertattribut der Nachricht, und die Unterelemente werden im params-Attribut der Nachricht gespeichert. Zum Beispiel:
1
2
3var 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 der Wert leer und die Parameter sind leer. Zum Beispiel:
1
2
3var 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 auf der ersten Ebene aufweist, ist value leer und params ist das Unterelement der ersten Ebene. Zum Beispiel:
1
2
3var 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 einen Unterschlüssel und keine untergeordneten Unterschlüssel hat, sind sowohl der Wert als auch die Parameter dieser Unterschlüssel. Zum Beispiel:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Nach dem Abgleich der Nachricht „/func1/123/456.html“, value == „123“, params == [“123“];
Erbschaftsverhältnis
Konstrukteur
Routing
Erstellen Sie ein Nachrichtenhandler-Routingobjekt
1new Routing(Object map = {});
Aufrufparameter:
- map: Objekt, Initialisierungs-Routing-Parameter
Erstellen Sie ein Nachrichtenhandler-Routingobjekt
1
2new Routing(String method,
Object map);
Aufrufparameter:
- method: Zeichenfolge, angebenhttpAnforderungsmethode „*“ akzeptiert alle Methoden
- map: Objekt, Initialisierungs-Routing-Parameter
Mitgliedsfunktion
append
Fügen Sie Regeln aus vorhandenen Routing-Objekten hinzu. Nach dem Hinzufügen werden die ursprünglichen Routen gelöscht.
1Routing Routing.append(Routing route);
Aufrufparameter:
- route: Routing, initialisiertes Routing-Objekt
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie einen Satz Routing-Regeln hinzu
1Routing Routing.append(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Routing-Regel hinzu
1
2Routing Routing.append(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Routing-Regel hinzu
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Aufrufparameter:
- method: Zeichenfolge, angebenhttpAnforderungsmethode, „*“ akzeptiert alle Methoden, „host“ gibt den Namen der virtuellen Domäne an
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
host
eine Gruppe hinzufügenhttpRoutingregeln für Domainnamen
1Routing Routing.host(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRoutingregeln für Domainnamen
1
2Routing Routing.host(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
all
Fügen Sie eine Gruppe hinzu, um alle zu akzeptierenhttpMethoden-Routing-Regeln
1Routing Routing.all(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Zeile hinzu, um alle zu akzeptierenhttpMethoden-Routing-Regeln
1
2Routing Routing.all(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
get
Fügen Sie einen Satz Routingregeln für die GET-Methode hinzu
1Routing Routing.get(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRouting-Regeln für die GET-Methode
1
2Routing Routing.get(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
post
Fügen Sie eine Reihe von Akzeptanzen hinzuhttpRoutingregeln für die POST-Methode
1Routing Routing.post(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRoutingregeln für die POST-Methode
1
2Routing Routing.post(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
del
Fügen Sie eine Reihe von Akzeptanzen hinzuhttpRoutingregeln für die DELETE-Methode
1Routing Routing.del(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRoutingregeln für die DELETE-Methode
1
2Routing Routing.del(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
put
Fügen Sie einen Satz Routing-Regeln für die PUT-Methode hinzu
1Routing Routing.put(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRouting-Regeln für die PUT-Methode
1
2Routing Routing.put(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
patch
Fügen Sie einen Satz Routingregeln für die PATCH-Methode hinzu
1Routing Routing.patch(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRoutingregeln für die PATCH-Methode
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
find
Fügen Sie einen Satz Routingregeln für die FIND-Methode hinzu
1Routing Routing.find(Object map);
Aufrufparameter:
- map: Objekt, Routing-Parameter
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
Fügen Sie eine Annahme hinzuhttpRoutingregeln für die FIND-Methode
1
2Routing Routing.find(String pattern,
Handler hdlr);
Aufrufparameter:
- pattern: String, übereinstimmendes Nachrichtenformat
- hdlr:Handler, integrierter Nachrichtenprozessor, Verarbeitungsfunktion, Kettenverarbeitungsarray, Routing-Objekt, siehe Detailsmq.Handler
Rückgabeergebnisse:
- Routing, gibt das Routenobjekt selbst zurück
invoke
Verarbeiten Sie eine Nachricht oder ein Objekt
1Handler Routing.invoke(object v) async;
Aufrufparameter:
- v:objectGeben Sie die zu verarbeitende Nachricht oder das zu verarbeitende Objekt an
Rückgabeergebnisse:
- Handler, kehren Sie zum nächsten Prozessor zurück
toString
Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.
1String Routing.toString();
Rückgabeergebnisse:
- String, gibt die Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.
1Value Routing.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält