Enrutamiento de objetos
Objeto de enrutamiento del controlador de mensajes
El objeto de enrutamiento es http El objeto principal del procesamiento de mensajes, el servidor coincide con la configuración de enrutamiento url Y método, y http El mensaje se reenvía al procesador correspondiente para completar diferentes transacciones.
Se puede proporcionar una ruta simple directamente en forma de un objeto 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();
Si necesita una personalización de enrutamiento más compleja, puede crear el objeto de enrutamiento usted mismo y procesar la estrategia de enrutamiento según sea 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();
El objeto de enrutamiento coincide con el mensaje de acuerdo con las reglas establecidas y entrega el mensaje al primer procesador que cumple las reglas. Las reglas de enrutamiento agregadas más adelante se hacen coincidir primero. Método de creación:
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Los elementos que coinciden con la expresión regular modifican el atributo de valor del mensaje y los subelementos se almacenan en el atributo params del mensaje. P.ej:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Después de hacer coincidir el mensaje "/func1/123/456.html", value == "/123/456.html", params == ["123", "456"];
Si el resultado coincidente no tiene hijos, el valor está vacío y params está vacío. P.ej:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
Después de hacer coincidir el mensaje "/func1/123/456.html", valor == "", params == [];
Si el resultado coincidente tiene varios subelementos en el primer nivel, el valor está vacío y params son los subelementos del primer nivel. P.ej:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Después de hacer coincidir el mensaje "/func1/123/456.html", valor == "", params == ["123", "456"];
Si el resultado de la coincidencia tiene solo un subelemento y ningún subelemento, entonces el valor y los parámetros son ambos este subelemento. P.ej:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Después de coincidir con el mensaje "/func1/123/456.html", valor == "123", params == ["123"];
Herencia
Constructor
Routing
Crear un objeto de enrutamiento de controlador de mensajes
1new Routing(Object map = {});
Parámetros de llamada:
- map: Objeto, inicializar parámetros de enrutamiento
Crear un objeto de enrutamiento de controlador de mensajes
1
2new Routing(String method,
Object map);
Parámetros de llamada:
- method: Cadena, especificar http Método de solicitud, "*" acepta todos los métodos
- map: Objeto, inicializar parámetros de enrutamiento
Función miembro
append
Agregue una regla de un objeto de ruta existente, la ruta original se borrará después de agregar
1Routing Routing.append(Routing route);
Parámetros de llamada:
- route: Routing, el objeto de enrutamiento que se ha inicializado
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar un conjunto de reglas de enrutamiento
1Routing Routing.append(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una regla de enrutamiento
1
2Routing Routing.append(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una regla de enrutamiento
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Parámetros de llamada:
- method: Cadena, especificar http Método de solicitud, "*" acepta todos los métodos, "host" especifica el nombre de dominio virtual
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
host
Agregar un grupo http Reglas de enrutamiento de nombres de dominio
1Routing Routing.host(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http Reglas de enrutamiento de nombres de dominio
1
2Routing Routing.host(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
all
Agregue un grupo para aceptar todo http Reglas de enrutamiento de métodos
1Routing Routing.all(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar uno aceptar todo http Reglas de enrutamiento de métodos
1
2Routing Routing.all(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
get
Agregar un conjunto de reglas de enrutamiento del método GET
1Routing Routing.get(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http GET reglas de enrutamiento de métodos
1
2Routing Routing.get(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
post
Agregar un grupo para aceptar http Reglas de enrutamiento del método POST
1Routing Routing.post(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http Reglas de enrutamiento del método POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
del
Agregar un grupo para aceptar http ELIMINAR reglas de enrutamiento del método
1Routing Routing.del(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http ELIMINAR reglas de enrutamiento del método
1
2Routing Routing.del(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
put
Agregar un conjunto de reglas de enrutamiento del método PUT
1Routing Routing.put(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http PUT reglas de enrutamiento del método
1
2Routing Routing.put(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
patch
Agregar un conjunto de reglas de enrutamiento del método PATCH
1Routing Routing.patch(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http Reglas de enrutamiento del método PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
find
Agregar un conjunto de reglas de enrutamiento del método FIND
1Routing Routing.find(Object map);
Parámetros de llamada:
- map: Objeto, parámetros de enrutamiento
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
Agregar una aceptación http ENCONTRAR reglas de enrutamiento de métodos
1
2Routing Routing.find(String pattern,
Handler hdlr);
Parámetros de llamada:
- pattern: Cadena, formato de coincidencia de mensajes
- hdlr: Handler, Procesador de mensajes incorporado, función de procesamiento, matriz de procesamiento en cadena, objeto de enrutamiento, ver detalles mq.Handler
Devolver resultado:
- Routing, Devuelve el objeto de ruta en sí
invoke
Procesar un mensaje u objeto
1Handler Routing.invoke(object v) async;
Parámetros de llamada:
- v: object, Especifique el mensaje u objeto a procesar
Devolver resultado:
- Handler, Regrese al siguiente procesador
toString
Devuelve la representación en cadena del objeto, generalmente devuelve "[Native Object]", el objeto se puede volver a implementar de acuerdo con sus propias características
1String Routing.toString();
Devolver resultado:
- String, Devuelve la representación de cadena del objeto
toJSON
Devuelve la representación en formato JSON del objeto, generalmente devuelve una colección de atributos legibles definidos por el objeto
1Value Routing.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, sin usar
Devolver resultado:
- Value, Devuelve un valor que contiene JSON serializable