ObjectRouting
Oggetto di routing del gestore messaggi
L'oggetto di instradamento èhttpL'oggetto principale dell'elaborazione dei messaggi, il server corrisponde in base alle impostazioni di routingurle metodo, e volontàhttpI messaggi vengono inoltrati ai processori corrispondenti per completare diverse transazioni.
Un percorso semplice può essere fornito direttamente come oggetto JSON, ad esempio:
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();
Se hai bisogno di una personalizzazione del routing più complessa, puoi creare tu stesso un oggetto Routing e gestire la strategia di routing secondo necessità:
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();
L'oggetto di routing abbina il messaggio secondo le regole impostate e consegna il messaggio al primo processore che soddisfa le regole. Le regole di routing aggiunte in seguito verranno abbinate per prime. Metodo di creazione:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Gli elementi corrispondenti all'espressione regolare modificano l'attributo value del messaggio e gli elementi secondari vengono archiviati nell'attributo params del messaggio. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Dopo aver trovato il messaggio "/func1/123/456.html", value == "/123/456.html", params == ["123", "456"];
Se il risultato corrispondente non ha figli, value è vuoto e params è vuoto. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
Dopo aver trovato la corrispondenza con il messaggio "/func1/123/456.html", value == "", params == [];
Se il risultato corrispondente ha più elementi secondari al primo livello, valore è vuoto e params è l'elemento secondario di primo livello. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Dopo aver trovato il messaggio "/func1/123/456.html", value == "", params == ["123", "456"];
Se il risultato corrispondente ha solo una sottochiave e nessuna sottochiave subordinata, sia value che params sono questa sottochiave. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Dopo aver trovato la corrispondenza con il messaggio "/func1/123/456.html", value == "123", params == ["123"];
rapporto ereditario
Costruttore
Routing
Creare un oggetto di routing del gestore messaggi
1new Routing(Object map = {});
Parametri di chiamata:
- map: Oggetto, parametri di routing di inizializzazione
Creare un oggetto di routing del gestore messaggi
1
2new Routing(String method,
Object map);
Parametri di chiamata:
- method: Stringa, specificarehttpMetodo richiesta, "*" accetta tutti i metodi
- map: Oggetto, parametri di routing di inizializzazione
funzione membro
append
Aggiungi regole da oggetti di routing esistenti. Dopo l'aggiunta, i percorsi originali verranno cancellati.
1Routing Routing.append(Routing route);
Parametri di chiamata:
- route: Routing, oggetto di routing inizializzato
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi una serie di regole di routing
1Routing Routing.append(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi una regola di routing
1
2Routing Routing.append(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi una regola di routing
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parametri di chiamata:
- method: Stringa, specificarehttpMetodo di richiesta, "*" accetta tutti i metodi, "host" specifica il nome del dominio virtuale
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
host
aggiungere un gruppohttpRegole di instradamento dei nomi di dominio
1Routing Routing.host(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di instradamento dei nomi di dominio
1
2Routing Routing.host(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
all
Aggiungi un gruppo per accettare tuttihttpRegole di routing del metodo
1Routing Routing.all(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi una riga per accettare tuttohttpRegole di routing del metodo
1
2Routing Routing.all(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
get
Aggiungi un set di regole di routing del metodo GET
1Routing Routing.get(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
post
Aggiungi una serie di accettazionihttpRegole di routing del metodo POST
1Routing Routing.post(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
del
Aggiungi una serie di accettazionihttpRegole di routing del metodo DELETE
1Routing Routing.del(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo DELETE
1
2Routing Routing.del(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
put
Aggiungi un set di regole di routing del metodo PUT
1Routing Routing.put(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
patch
Aggiungi un set di regole di routing del metodo PATCH
1Routing Routing.patch(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
find
Aggiungi un set di regole di routing del metodo FIND
1Routing Routing.find(Object map);
Parametri di chiamata:
- map: Oggetto, parametri di routing
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
Aggiungi un'accettazionehttpRegole di routing del metodo FIND
1
2Routing Routing.find(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, processore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di instradamento, vedere i dettaglimq.Handler
Risultati restituiti:
- Routing, restituisce l'oggetto del percorso stesso
invoke
Elaborare un messaggio o un oggetto
1Handler Routing.invoke(object v) async;
Parametri di chiamata:
- v:object, specificare il messaggio o l'oggetto da elaborare
Risultati restituiti:
- Handler, torna al processore successivo
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String Routing.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value Routing.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile