Objet objet intégré

Routage d'objets

Objet de routage du processeur de messages

L'objet de routage est l'objet principal du traitement des messages http . Le serveur fait correspondre l' url et la méthode en fonction des paramètres de routage et transmet le message http au processeur correspondant pour effectuer différentes transactions.

Un itinéraire simple peut être fourni directement sous la forme d'un objet JSON, tel que:

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

Si vous avez besoin d'une personnalisation de routage plus complexe, vous pouvez créer vous-même un objet de routage et gérer les stratégies 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 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'objet de routage correspond au message selon les règles définies et transmet le message au premier processeur qui satisfait aux règles. Les règles de routage ajoutées ultérieurement sont mises en correspondance en premier. Comment créer:

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

Les éléments auxquels correspondent des expressions régulières modifient l'attribut de valeur du message et les sous-éléments sont stockés dans l'attribut params du message. Par exemple:

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

Après avoir fait correspondre le message "/func1/123/456.html", valeur == "/123/456.html", params == ["123", "456"];

Si le résultat correspondant n'a pas d'enfants, alors la valeur est vide et params est vide. Par exemple:

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

Après avoir correspondu au message "/func1/123/456.html", valeur == "", params == [];

Si le résultat correspondant a plusieurs sous-éléments au premier niveau, la valeur est vide et params est le sous-élément de premier niveau. Par exemple:

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

Après avoir fait correspondre le message "/func1/123/456.html", valeur == "", params == ["123", "456"];

Si le résultat correspondant n'a qu'un seul sous-élément et aucun sous-élément, la valeur et les paramètres sont ce sous-élément. Par exemple:

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

Après avoir correspondu au message "/func1/123/456.html", valeur == "123", params == ["123"];

Héritage

Constructeur

Routing

Créer un objet de routage du processeur de messages

1
new Routing(Object map = {});

Paramètres d'appel:

  • map : objet, paramètres de routage initiaux

Créer un objet de routage du processeur de messages

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

Paramètres d'appel:

  • method : String, spécifie la méthode de requête http , "*" accepte toutes les méthodes
  • map : objet, paramètres de routage initiaux

Fonction membre

append

Ajoutez des règles à partir d'objets de routage existants, l'itinéraire d'origine sera effacé après l'ajout

1
Routing Routing.append(Routing route);

Paramètres d'appel:

  • route : Routing, l'objet de routage initialisé

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter un ensemble de règles de routage

1
Routing Routing.append(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage

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

Paramètres d'appel:

  • method : String, spécifie la méthode de requête http , "*" accepte toutes les méthodes, "host" spécifie le nom de domaine virtuel
  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

host

Ajouter un ensemble de règles de routage pour les noms de domaine http

1
Routing Routing.host(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte les noms de domaine http

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

all

Ajouter un ensemble de règles de routage acceptant toutes les méthodes http

1
Routing Routing.all(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte toutes les méthodes http

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

get

Ajouter un ensemble de règles de routage de méthode GET

1
Routing Routing.get(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http GET

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

post

Ajouter un ensemble de règles de routage qui acceptent la méthode http POST

1
Routing Routing.post(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http POST

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

del

Ajouter un ensemble de règles de routage qui acceptent la méthode http DELETE

1
Routing Routing.del(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http DELETE

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

put

Ajouter un ensemble de règles de routage de méthode PUT

1
Routing Routing.put(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http PUT

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

patch

Ajouter un ensemble de règles de routage de méthode PATCH

1
Routing Routing.patch(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http PATCH

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

find

Ajouter un ensemble de règles de routage de méthode FIND

1
Routing Routing.find(Object map);

Paramètres d'appel:

  • map : objet, paramètres de routage

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

Ajouter une règle de routage qui accepte la méthode http FIND

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

Paramètres d'appel:

  • pattern : chaîne, format de correspondance des messages
  • hdlr : Handler , processeur de messages intégré, fonction de traitement, tableau de traitement en chaîne, objet de routage, voir mq.Handler plus mq.Handler détails

Résultat de retour:

  • Routing , retourne l'objet de routage lui-même

invoke

Gérer un message ou un objet

1
Handler Routing.invoke(object v) async;

Paramètres d'appel:

  • v : object , spécifiez le message ou l'objet à traiter

Résultat de retour:

  • Handler , retour au processeur suivant

toString

Renvoie une représentation sous forme de chaîne de l'objet, renvoie généralement "[Native Object]", l'objet peut être réimplémenté selon ses propres caractéristiques

1
String Routing.toString();

Résultat de retour:

  • String , renvoie une représentation sous forme de chaîne de l'objet

toJSON

Renvoie la représentation au format JSON de l'objet, renvoie généralement une collection d'attributs lisibles définis par l'objet

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

Paramètres d'appel:

  • key : chaîne, inutilisée

Résultat de retour:

  • Value , retourne une valeur contenant JSON sérialisable