ObjetRoutage
Objet de routage du gestionnaire de messages
L'objet de routage esthttpObjet central du traitement des messages, le serveur correspond en fonction des paramètres de routageurlet la méthode, ethttpLes messages sont transmis aux processeurs correspondants pour effectuer différentes transactions.
Un itinéraire simple peut être fourni directement sous forme d'objet JSON, tel que :
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 vous avez besoin d'une personnalisation de routage plus complexe, vous pouvez créer vous-même un objet Routage et gérer la stratégie de routage selon vos besoins :
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'objet de routage fait correspondre le message selon les règles définies et transmet le message au premier processeur qui respecte les règles. Les règles de routage ajoutées ultérieurement seront mises en correspondance en premier. Méthode de création :
1
2
3
4var routing = new mq.Routing({
"^/func1(/.*)$": func1,
"^/func2(/.*)$": func2
});
Les éléments correspondant à l'expression régulière modifient l'attribut value du message et les sous-éléments sont stockés dans l'attribut params du message. Par exemple:
1
2
3var routing = new mq.Routing({
"^/func1(/([0-9]+)/([0-9]+)\.html)$": func1,
});
Après avoir fait correspondre le message "/func1/123/456.html", value == "/123/456.html", params == ["123", "456"];
Si le résultat correspondant n'a pas d'enfant, la valeur est vide et les paramètres sont vides. Par exemple:
1
2
3var routing = new mq.Routing({
"^/func1/[0-9]+/[0-9]+\.html$": func1,
});
Après avoir fait correspondre le message "/func1/123/456.html", value == "", params == [];
Si le résultat correspondant comporte plusieurs sous-éléments au premier niveau, value est vide et params est le sous-élément de premier niveau. Par exemple:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/([0-9]+)\.html$": func1,
});
Après avoir fait correspondre le message "/func1/123/456.html", value == "", params == ["123", "456"];
Si le résultat correspondant n'a qu'une seule sous-clé et aucune sous-clé subordonnée, la valeur et les paramètres sont cette sous-clé. Par exemple:
1
2
3var routing = new mq.Routing({
"^/func1/([0-9]+)/[0-9]+\.html$": func1,
});
Après avoir fait correspondre le message "/func1/123/456.html", value == "123", params == ["123"];
relation d'héritage
Constructeur
Routing
Créer un objet de routage de gestionnaire de messages
1new Routing(Object map = {});
Paramètres d'appel :
- map: Objet, paramètres de routage d'initialisation
Créer un objet de routage de gestionnaire de messages
1
2new Routing(String method,
Object map);
Paramètres d'appel :
- method: Chaîne, précisezhttpMéthode de requête, "*" accepte toutes les méthodes
- map: Objet, paramètres de routage d'initialisation
fonction membre
append
Ajoutez des règles à partir d'objets de routage existants. Après l'ajout, les itinéraires d'origine seront effacés.
1Routing Routing.append(Routing route);
Paramètres d'appel :
- route: Routage, objet de routage initialisé
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter un ensemble de règles de routage
1Routing Routing.append(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une règle de routage
1
2Routing Routing.append(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une règle de routage
1
2
3Routing Routing.append(String method,
String pattern,
Handler hdlr);
Paramètres d'appel :
- method: Chaîne, précisezhttpMéthode de requête, "*" accepte toutes les méthodes, "host" précise le nom de domaine virtuel
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
host
ajouter un groupehttpRègles de routage des noms de domaine
1Routing Routing.host(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage des noms de domaine
1
2Routing Routing.host(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
all
Ajouter un groupe pour tout accepterhttpRègles de routage des méthodes
1Routing Routing.all(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajoutez une ligne pour tout accepterhttpRègles de routage des méthodes
1
2Routing Routing.all(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
get
Ajouter un ensemble de règles de routage de méthode GET
1Routing Routing.get(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode GET
1
2Routing Routing.get(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
post
Ajouter un ensemble d'acceptationshttpRègles de routage de la méthode POST
1Routing Routing.post(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode POST
1
2Routing Routing.post(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
del
Ajouter un ensemble d'acceptationshttpRègles de routage de la méthode DELETE
1Routing Routing.del(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode DELETE
1
2Routing Routing.del(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
put
Ajouter un ensemble de règles de routage de la méthode PUT
1Routing Routing.put(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode PUT
1
2Routing Routing.put(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
patch
Ajouter un ensemble de règles de routage de la méthode PATCH
1Routing Routing.patch(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode PATCH
1
2Routing Routing.patch(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
find
Ajouter un ensemble de règles de routage de la méthode FIND
1Routing Routing.find(Object map);
Paramètres d'appel :
- map: Objet, paramètres de routage
Résultats de retour :
- Routing, renvoie l'objet route lui-même
Ajouter une acceptationhttpRègles de routage de la méthode FIND
1
2Routing Routing.find(String pattern,
Handler hdlr);
Paramètres d'appel :
- pattern: Chaîne, format de correspondance de message
- hdlr:Handler, processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir les détailsmq.Handler
Résultats de retour :
- Routing, renvoie l'objet route lui-même
invoke
Traiter un message ou un objet
1Handler Routing.invoke(object v) async;
Paramètres d'appel :
- v:object, précisez le message ou l'objet à traiter
Résultats de retour :
- Handler, retour au processeur suivant
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String Routing.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value Routing.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable