Objektrouting
Routing-Objekt für den Nachrichtenhandler
Das Routing-Objekt ist das Kernobjekt der Verarbeitung von http Nachrichten. Der Server stimmt 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 in Form eines JSON-Objekts bereitgestellt werden, z.
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.run();
Wenn Sie eine komplexere Routing-Anpassung benötigen, können Sie das Routing-Objekt selbst erstellen und die Routing-Strategie nach Bedarf verarbeiten:
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.run();
Das Routing-Objekt stimmt mit der Nachricht gemäß den festgelegten Regeln überein und übermittelt 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
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Elemente, die mit dem regulären Ausdruck übereinstimmen, ändern das Wertattribut der Nachricht, und die Unterelemente werden im Parameterattribut der Nachricht gespeichert. Z.B:
1
2
3var 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 untergeordneten Elemente enthält, ist der Wert leer und params ist leer. Z.B:
1
2
3var 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 mehrere Unterelemente in der ersten Ebene enthält, ist der Wert leer und params ist das Unterelement der ersten Ebene. Z.B:
1
2
3var 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. Z.B:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Nach dem Abgleichen der Nachricht "/func1/123/456.html", Wert == "123", params == ["123"];
Erbe
Konstrukteur
Routing
Erstellen Sie ein Nachrichtenhandler-Routingobjekt
1new Routing(Object map = {});
Parameter aufrufen:
- map : Objekt, Routing-Parameter initialisieren
Erstellen Sie ein Nachrichtenhandler-Routingobjekt
1
2new Routing(String method,
Object map);
Parameter aufrufen:
- method : String, http Anforderungsmethode angeben, "*" akzeptiert alle Methoden
- map : Objekt, Routing-Parameter initialisieren
Mitgliedsfunktion
append
Wenn Sie eine Regel aus einem vorhandenen Routenobjekt hinzufügen, wird die ursprüngliche Route nach dem Hinzufügen gelöscht
1Routing Routing.append(Routing route);
Parameter aufrufen:
- route : Routing, Routing-Objekt, das initialisiert wurde
Ergebnis zurückgeben:
- Routing , gibt das Routing-Objekt selbst zurück
Fügen Sie eine Reihe von Routing-Regeln hinzu
1Routing 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
2Routing Routing.append(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parameter aufrufen:
- method : Zeichenfolge, http Anforderungsmethode angeben, "*" akzeptiert alle Methoden, "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
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
1Routing 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
2Routing Routing.host(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.all(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.get(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.post(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.del(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details
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
1Routing 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
2Routing Routing.put(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.patch(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, 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
1Routing 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
2Routing Routing.find(String pattern,
Handler hdlr);
Parameter aufrufen:
- pattern : Zeichenfolge, Nachrichtenübereinstimmungsformat
- hdlr : Handler , integrierter Nachrichtenhandler, Verarbeitungsfunktion, Kettenverarbeitungsarray, mq.Handler , siehe mq.Handler Details
Ergebnis zurückgeben:
- Routing , gibt das Routing-Objekt selbst zurück
invoke
Verarbeiten Sie eine Nachricht oder ein Objekt
1Handler 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 erneut implementiert werden
1String 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 und gibt im Allgemeinen eine Sammlung lesbarer Attribute zurück, die vom Objekt definiert wurden
1Value Routing.toJSON(String key = "");
Parameter aufrufen:
- key : String, unbenutzt
Ergebnis zurückgeben:
- Value , gibt einen Wert zurück, der JSON serialisierbar enthält