Oggetto oggetto incorporato

Instradamento degli oggetti

Oggetto di routing del processore dei messaggi

L'oggetto di routing è l'oggetto principale dell'elaborazione dei messaggi http . Il server abbina l' url e il metodo in base alle impostazioni di routing e inoltra il messaggio http al processore corrispondente per completare diverse transazioni.

Un percorso semplice può essere fornito direttamente sotto forma di un oggetto JSON, come ad esempio:

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

Se è necessaria una personalizzazione del routing più complessa, è possibile creare 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 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();

L'oggetto di routing corrisponde al messaggio in base alle regole impostate e passa il messaggio al primo processore che soddisfa le regole. Le regole di routing aggiunte successivamente vengono abbinate per prime. Come creare:

1 2 3 4
var routing = new mq.Routing({ "^/func1(/.*)$": func1, "^/func2(/.*)$": func2 });

Gli elementi corrispondenti alle espressioni regolari modificano l'attributo value del messaggio e gli elementi secondari sono memorizzati nell'attributo params del messaggio. Per esempio:

1 2 3
var routing = new mq.Routing({ "^/func1(/([0-9]+)/([0-9]+)\.html)$": func1, });

Dopo aver abbinato il messaggio "/func1/123/456.html", valore == "/123/456.html", params == ["123", "456"];

Se il risultato della corrispondenza non ha figli, il valore è vuoto e params è vuoto. Per esempio:

1 2 3
var routing = new mq.Routing({ "^/func1/[0-9]+/[0-9]+\.html$": func1, });

Dopo aver abbinato il messaggio "/func1/123/456.html", valore == "", params == [];

Se il risultato della corrispondenza ha più sotto-elementi al primo livello, il valore è vuoto e params è il sotto-elemento di primo livello. Per esempio:

1 2 3
var 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 elemento secondario e nessun elemento secondario, sia questo valore sia i parametri sono parametri. Per esempio:

1 2 3
var routing = new mq.Routing({ "^/func1/([0-9]+)/[0-9]+\.html$": func1, });

Dopo aver abbinato il messaggio "/func1/123/456.html", valore == "123", params == ["123"];

Eredità

Costruttore

Routing

Creare un oggetto di routing del processore dei messaggi

1
new Routing(Object map = {});

Parametri di chiamata:

  • map : oggetto, parametri di routing iniziale

Creare un oggetto di routing del processore dei messaggi

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

Parametri di chiamata:

  • method : String, specifica il metodo di richiesta http , "*" accetta tutti i metodi
  • map : oggetto, parametri di routing iniziale

Funzione membro

append

Aggiungi regole da oggetti di routing esistenti, le route originali verranno cancellate dopo l'aggiunta

1
Routing Routing.append(Routing route);

Parametri di chiamata:

  • route : routing, l'oggetto di routing inizializzato

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi un set di regole di routing

1
Routing Routing.append(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing

1 2
Routing Routing.append(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing

1 2 3
Routing Routing.append(String method, String pattern, Handler hdlr);

Parametri di chiamata:

  • method : String, specifica il metodo di richiesta http , "*" accetta tutti i metodi, "host" specifica il nome di dominio virtuale
  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

host

Aggiungi una serie di regole di routing per i nomi di dominio http

1
Routing Routing.host(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta i nomi di dominio http

1 2
Routing Routing.host(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

all

Aggiungi una serie di regole di routing che accettano tutti i metodi http

1
Routing Routing.all(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta tutti i metodi http

1 2
Routing Routing.all(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

get

Aggiungi un set di regole di routing del metodo GET

1
Routing Routing.get(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo GET http

1 2
Routing Routing.get(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

post

Aggiungi una serie di regole di routing che accettano il metodo POST http

1
Routing Routing.post(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo POST http

1 2
Routing Routing.post(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

del

Aggiungi una serie di regole di routing che accettano il metodo DELETE http

1
Routing Routing.del(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo DELETE http

1 2
Routing Routing.del(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

put

Aggiungi una serie di regole di routing del metodo PUT

1
Routing Routing.put(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo PUT http

1 2
Routing Routing.put(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

patch

Aggiungi un set di regole di routing PATCH

1
Routing Routing.patch(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo PATCH http

1 2
Routing Routing.patch(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

find

Aggiungi una serie di regole di routing del metodo FIND

1
Routing Routing.find(Object map);

Parametri di chiamata:

  • map : oggetto, parametri di routing

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

Aggiungi una regola di routing che accetta il metodo http FIND

1 2
Routing Routing.find(String pattern, Handler hdlr);

Parametri di chiamata:

  • pattern : stringa, formato di corrispondenza dei messaggi
  • hdlr : Handler , elaboratore di messaggi integrato, funzione di elaborazione, array di elaborazione della catena, oggetto di routing, vedere mq.Handler dettagli

Risultato di ritorno:

  • Routing , restituisce l'oggetto di routing stesso

invoke

Gestire un messaggio o un oggetto

1
Handler Routing.invoke(object v) async;

Parametri di chiamata:

  • v : object , specifica il messaggio o l'oggetto da elaborare

Risultato di ritorno:

  • Handler , tornare al processore successivo

toString

Restituisce la rappresentazione in forma di stringa dell'oggetto, in genere restituisce "[Native Object]", l'oggetto può essere reimplementato in base alle proprie caratteristiche

1
String Routing.toString();

Risultato di ritorno:

  • String , restituisce una rappresentazione in formato stringa dell'oggetto

toJSON

Restituisce la rappresentazione JSON dell'oggetto, in genere restituisce una raccolta di attributi leggibili definiti dall'oggetto

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

Parametri di chiamata:

  • key : stringa, non utilizzata

Risultato di ritorno:

  • Value , restituisce un valore contenente serializzabile JSON