Instradamento degli oggetti
oggetto di instradamento del gestore messaggi
L'oggetto del percorso èhttpL'oggetto principale dell'elaborazione dei messaggi, il server corrisponde in base alle impostazioni di routingurle metodo e volontàhttpI messaggi vengono inoltrati ai responsabili del trattamento corrispondenti per completare le diverse transazioni.
Un semplice percorso può essere fornito direttamente come oggetto JSON, come:
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 il tuo oggetto Routing e gestire le strategie 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 i messaggi in base alle regole impostate e passa il messaggio al primo processore che soddisfa le regole. Le regole di instradamento aggiunte in seguito vengono confrontate per prime. Crea metodo:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
L'elemento corrispondente all'espressione regolare modifica l'attributo value del messaggio e l'elemento secondario viene archiviato nell'attributo params del messaggio. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Dopo aver abbinato il messaggio "/func1/123/456.html", value == "/123/456.html", params == ["123", "456"];
Se il risultato della corrispondenza 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 abbinato il messaggio "/func1/123/456.html", value == "", params == [];
Se il risultato abbinato ha più figli al primo livello, value è vuoto e params è il figlio di primo livello. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Dopo aver abbinato il messaggio "/func1/123/456.html", value == "", params == ["123", "456"];
Se il risultato della corrispondenza ha un solo figlio e nessun figlio subordinato, sia il valore che i parametri sono questo figlio. Per esempio:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Dopo aver abbinato il messaggio "/func1/123/456.html", value == "123", params == ["123"];
rapporto di eredità
Costruttore
Routing
Crea un oggetto di instradamento del gestore messaggi
1new Routing(Object map = {});
Parametri di chiamata:
- map: Oggetto, inizializza i parametri del percorso
Crea un oggetto di instradamento del gestore messaggi
1
2new Routing(String method,
Object map);
Parametri di chiamata:
- method: stringa, specificatahttpmetodo di richiesta, "*" accetta tutti i metodi
- map: Oggetto, inizializza i parametri del percorso
funzione membro
append
Aggiungi una regola da un oggetto percorso esistente, il percorso originale verrà cancellato dopo l'aggiunta
1Routing Routing.append(Routing route);
Parametri di chiamata:
- route: Routing, l'oggetto del percorso che è stato inizializzato
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
Aggiungi una serie di regole di instradamento
1Routing Routing.append(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
Aggiungi una regola di instradamento
1
2Routing Routing.append(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
Aggiungi una regola di instradamento
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parametri di chiamata:
- method: stringa, specificatahttpMetodo di richiesta, "*" accetta tutti i metodi, "host" specifica il nome di dominio virtuale
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
host
aggiungi un gruppohttpRegole di instradamento per i nomi di dominio
1Routing Routing.host(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpRegole di instradamento per i nomi di dominio
1
2Routing Routing.host(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
all
Aggiungi un gruppo per accettare tuttohttpregole di instradamento del metodo
1Routing Routing.all(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungi un accetta tuttohttpregole di instradamento del metodo
1
2Routing Routing.all(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
get
Aggiungi una serie di regole di instradamento del metodo GET
1Routing Routing.get(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpRegole di instradamento del metodo GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
post
Aggiungi una serie di accettahttpRegole di instradamento del metodo POST
1Routing Routing.post(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpRegole di instradamento del metodo POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
del
Aggiungi una serie di accettahttpDELETE regole di instradamento del metodo
1Routing Routing.del(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpDELETE regole di instradamento del metodo
1
2Routing Routing.del(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
put
Aggiungi una serie di regole di instradamento del metodo PUT
1Routing Routing.put(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpRegole di instradamento del metodo PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
patch
Aggiungi una serie di regole di instradamento del metodo PATCH
1Routing Routing.patch(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpRegole di instradamento del metodo PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
find
Aggiungi una serie di regole di instradamento del metodo FIND
1Routing Routing.find(Object map);
Parametri di chiamata:
- map: Oggetto, parametro del percorso
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
aggiungere un'accettazionehttpTROVA le regole di instradamento del metodo
1
2Routing Routing.find(String pattern,
Handler hdlr);
Parametri di chiamata:
- pattern: stringa, formato di corrispondenza del messaggio
- hdlr:Handler, gestori di messaggi integrati, funzioni di gestione, array di elaborazione concatenati, oggetti di routing, vedere i dettaglimq.Handler
Risultato di ritorno:
- Routing, restituisce l'oggetto percorso stesso
invoke
gestire un messaggio o un oggetto
1Handler Routing.invoke(object v) async;
Parametri di chiamata:
- v:object, specifica il messaggio o l'oggetto da elaborare
Risultato di ritorno:
- Handler, torna al gestore successivo
toString
Restituisce la rappresentazione in stringa dell'oggetto, generalmente restituisce "[Native Object]", l'oggetto può essere reimplementato secondo le proprie caratteristiche
1String Routing.toString();
Risultato di ritorno:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce la rappresentazione in formato JSON dell'oggetto, generalmente restituisce l'insieme di proprietà leggibili definite dall'oggetto
1Value Routing.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultato di ritorno:
- Value, restituisce un valore contenente JSON serializzabile