2 votes

Comment utiliser streamlinejs dans expressjs ?

Lorsque j'utilise expressjs, mais que je ne sais pas comment l'utiliser avec streamlinejs .

Regardez le code express :

var app = express.createServer();

app.get('/', function(req,res) {
   User.find({name:'Jack'}, function(err, users) {
      res.send(users);
   });
});

Comment utiliser streamlinejs dans le code ?

2voto

Bruno Jouhier Points 665

C'est un point que je couvre rapidement dans la FAQ (https://github.com/Sage/streamlinejs/blob/master/FAQ.md#the-underscore-trick-is-designed-for-callbacks-but-not-events-how-do-i-deal-with-events).

La solution la plus simple est d'ajouter l'underscore comme paramètre supplémentaire à la commande get le rappel :

app.get('/', function(req,res, next, _) {
   var users = User.find({name:'Jack'}, _);
   res.send(users);
});

Le seul problème serait que connect ajoute un jour un quatrième paramètre à sa fonction de rappel. Ce qui suit est un peu plus sûr (mais probablement excessif car je ne vois pas pourquoi connect modifierait son API de rappel) :

app.get('/', function(req,res) {
   (function(_) {
      var users = User.find({name:'Jack'}, _);
      res.send(users);
   })(trap); // trap is a generic callback that handles errors
});

1voto

Aseem Kishore Points 1972

Nous utilisons Express et Streamline pour Le Thingdom Pour ce faire, nous avons créé un simple wrapper qui permet à l'utilisateur d'accéder à l'interface de l'entreprise. next callback (troisième paramètre) doit être un callback compatible avec Streamline, à la fois pour les gestionnaires de routes et les gestionnaires d'intergiciels.

Voilà :

https://gist.github.com/1087991

\=)

J'avais l'intention d'en faire un module générique et de le publier sur npm - je le ferai bientôt. Edit : https://github.com/aseemk/express-streamline

Notez qu'il y a un inconvénient à cela : vous ne pouvez pas faire en sorte que les gestionnaires d'itinéraires " continuent " (fall through) vers d'autres gestionnaires d'itinéraires. Nous n'avons jamais utilisé cette fonctionnalité, et nous ne prévoyons pas de le faire -- il est beaucoup plus simple de savoir que chaque gestionnaire d'itinéraire est la destination finale -- donc nous étions d'accord avec ce compromis.

Edit : Ceci n'est testé qu'avec Express 2.x.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X