Enrutamento de obxectos
Obxecto de encamiñamento do controlador de mensaxes
O obxecto de enrutamento é http O obxecto principal do procesamento de mensaxes, o servidor coincide segundo a configuración de enrutamento url E método, e http A mensaxe reenvíase ao procesador correspondente para completar diferentes transaccións.
Pódese proporcionar unha ruta sinxela directamente en forma de 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 precisa unha personalización de enrutamento máis complexa, pode crear vostede mesmo o obxecto de enrutamento e procesar 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 entrega a mensaxe ao primeiro procesador que cumpra as regras. As regras de enrutamento engadidas posteriormente coinciden 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 de valor da mensaxe e os subelementos almacénanse no atributo params da mensaxe. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Despois de coincidir coa mensaxe "/func1/123/456.html", valor == "/123/456.html", params == ["123", "456"];
Se o resultado coincidente non ten fillos, o valor está baleiro e os parámetros están baleiros. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
Despois de coincidir coa mensaxe "/func1/123/456.html", valor == "", params == [];
Se o resultado coincidente ten varios subelementos no primeiro nivel, o valor está baleiro e os params son os subelementos do primeiro nivel. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Despois de coincidir coa mensaxe "/func1/123/456.html", valor == "", params == ["123", "456"];
Se o resultado coincidente só ten un subelemento e non hai subelementos, entón o valor e os parámetros son este subelemento. Por exemplo:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Despois de coincidir coa mensaxe "/func1/123/456.html", valor == "123", params == ["123"];
Herdanza
Construtor
Routing
Crea un obxecto de enrutamento do controlador de mensaxes
1new Routing(Object map = {});
Parámetros de chamada:
- map: Obxectivo, inicializa os parámetros de enrutamento
Crea un obxecto de enrutamento do controlador de mensaxes
1
2new Routing(String method,
Object map);
Parámetros de chamada:
- method: Cadea, especificar http Método de solicitude, "*" acepta todos os métodos
- map: Obxectivo, inicializa os parámetros de enrutamento
Función de membro
append
Engade unha regra desde un obxecto de ruta existente, a ruta orixinal borrarase despois de engadila
1Routing Routing.append(Routing route);
Parámetros de chamada:
- route: Enrutamento, o obxecto de enrutamento que se inicializou
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade un conxunto de regras de enrutamento
1Routing Routing.append(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha regra de enrutamento
1
2Routing Routing.append(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha regra de enrutamento
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parámetros de chamada:
- method: Cadea, especificar http Método de solicitude, "*" acepta todos os métodos, "host" especifica o nome de dominio virtual
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
host
Engade un grupo http Regras de enrutamento de nomes de dominio
1Routing Routing.host(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http Regras de enrutamento de nomes de dominio
1
2Routing Routing.host(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
all
Engade un grupo para aceptalo todo http Regras de enrutamento de métodos
1Routing Routing.all(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade un aceptar todo http Regras de enrutamento de métodos
1
2Routing Routing.all(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de 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
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http Regras de enrutamento do método GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
post
Engade un grupo para aceptalo http Regras de enrutamento do método POST
1Routing Routing.post(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http Regras de enrutamento do método POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
del
Engade un grupo para aceptalo http ELIMINA as regras de enrutamento do método
1Routing Routing.del(Object map);
Parámetros de chamada:
- map: Obxecto, parámetros de enrutamento
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http ELIMINA as regras de enrutamento do método
1
2Routing Routing.del(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de 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
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http Regras de enrutamento do método PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de 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
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http Regras de enrutamento do método PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de 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
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
Engade unha aceptación http FIND regras de enrutamento do método
1
2Routing Routing.find(String pattern,
Handler hdlr);
Parámetros de chamada:
- pattern: Cadea, formato de correspondencia de mensaxes
- hdlr: Handler, Procesador de mensaxes incorporado, función de procesamento, matriz de procesamento de cadeas, obxecto de enrutamento, ver detalles mq.Handler
Resultado de volta:
- Routing, Devolve o propio obxecto de ruta
invoke
Procesa unha mensaxe ou un obxecto
1Handler Routing.invoke(object v) async;
Parámetros de chamada:
- v: object, Especifique a mensaxe ou o obxecto a procesar
Resultado de volta:
- Handler, Volver ao seguinte procesador
toString
Devolve a representación de cadea do obxecto, xeralmente devolve "[Obxecto nativo]", o obxecto pode reimplementarse segundo as súas propias características
1String Routing.toString();
Resultado de volta:
- String, Devolve a representación de cadea do obxecto
toJSON
Devolve a representación en formato JSON do obxecto, xeralmente devolve unha colección de atributos lexibles definidos polo obxecto
1Value Routing.toJSON(String key = "");
Parámetros de chamada:
- key: Cadea, sen usar
Resultado de volta:
- Value, Devolve un valor que contén JSON serializable