Enrutamento de obxectos
Obxecto de enrutamento do manejador de mensaxes
O obxecto de enrutamento éhttpO obxecto principal do procesamento de mensaxes, o servidor coincide segundo a configuración de enrutamentourle método, e vontadehttpAs mensaxes envíanse aos procesadores correspondentes para completar diferentes transaccións.
Pódese proporcionar unha ruta sinxela directamente como un obxecto JSON, como:
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 precisas unha personalización de enrutamento máis complexa, podes crear un obxecto de enrutamento e xestionar a estratexia de enrutamento segundo sexa necesario:
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();
O obxecto de enrutamento coincide coa mensaxe segundo as regras establecidas e envía a mensaxe ao primeiro procesador que cumpre as regras. As regras de ruta engadidas máis tarde coincidirán primeiro. Método de creación:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Os elementos coincidentes coa expresión regular modifican o atributo value da mensaxe e os subelementos gárdanse no atributo params da mensaxe. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Despois de facer coincidir a mensaxe "/func1/123/456.html", valor == "/123/456.html", params == ["123", "456"];
Se o resultado coincidente non ten fillos, value está baleiro e params está baleiro. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
Despois de facer coincidir a mensaxe "/func1/123/456.html", valor == "", params == [];
Se o resultado coincidente ten varios subelementos no primeiro nivel, value está baleiro e params é o subelemento do primeiro nivel. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Despois de facer coincidir a mensaxe "/func1/123/456.html", valor == "", params == ["123", "456"];
Se o resultado coincidente só ten unha subclave e ningunha subclave subordinada, tanto o valor como os parámetros son esta subclave. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Despois de facer coincidir a mensaxe "/func1/123/456.html", valor == "123", parámetros == ["123"];
relación de herdanza
Construtor
Routing
Crear un obxecto de enrutamento do manejador de mensaxes
1new Routing(Object map = {});
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento de inicialización
Crear un obxecto de enrutamento do manejador de mensaxes
1
2new Routing(String method,
Object map);
Parámetros de chamada:
- method: Cadena, especifiquehttpMétodo de solicitude, "*" acepta todos os métodos
- map: Obxecto, parámetros de enrutamento de inicialización
función de membro
append
Engade regras de obxectos de enrutamento existentes. Despois de engadir, borraranse as rutas orixinais.
1Routing Routing.append(Routing route);
Parámetros de chamada:
- route: Enrutamento, obxecto de enrutamento inicializado
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engade un conxunto de regras de enrutamento
1Routing Routing.append(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engade unha regra de enrutamento
1
2Routing Routing.append(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engade unha regra de enrutamento
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parámetros de chamada:
- method: Cadena, especifiquehttpMétodo de solicitude, "*" acepta todos os métodos, "host" especifica o nome de dominio virtual
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
host
engadir un grupohttpRegras de enrutamento de nomes de dominio
1Routing Routing.host(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento de nomes de dominio
1
2Routing Routing.host(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
all
Engade un grupo para aceptar todohttpRegras de enrutamento do método
1Routing Routing.all(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engade unha liña para aceptar todohttpRegras de enrutamento do método
1
2Routing Routing.all(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
get
Engade un conxunto de regras de enrutamento do método GET
1Routing Routing.get(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento do método GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
post
Engade un conxunto de aceptaciónshttpRegras de enrutamento do método POST
1Routing Routing.post(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento do método POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
del
Engade un conxunto de aceptaciónshttpDELETE regras de enrutamento do método
1Routing Routing.del(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpDELETE regras de enrutamento do método
1
2Routing Routing.del(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
put
Engade un conxunto de regras de enrutamento do método PUT
1Routing Routing.put(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento do método PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
patch
Engade un conxunto de regras de enrutamento do método PATCH
1Routing Routing.patch(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento do método PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
find
Engade un conxunto de regras de enrutamento do método FIND
1Routing Routing.find(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
Engadir unha aceptaciónhttpRegras de enrutamento do método FIND
1
2Routing Routing.find(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de coincidencia de mensaxes
- hdlr:Handler, procesador de mensaxes integrado, función de procesamento, matriz de procesamento en cadea, obxecto de enrutamento, ver detallesmq.Handler
Resultados de devolución:
- Routing, devolve o propio obxecto da ruta
invoke
Procesar unha mensaxe ou obxecto
1Handler Routing.invoke(object v) async;
Parámetros de chamada:
- v:object, especifique a mensaxe ou o obxecto que se vai procesar
Resultados de devolución:
- Handler, volva ao seguinte procesador
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String Routing.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value Routing.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable