164 votes

next() node.js JavaScript

Je vois beaucoup d’utilisation `` en node.js.

Qu’est-ce, d'où il vient ? Que fait-elle ? Puis-je l’utiliser côté client ?

Désolé il est utilisé par exemple ici : http://dailyjs.com/2010/12/06/node-tutorial-5/

Recherchez la fonction loadUser.

124voto

lwburk Points 29313

Cela semble être une variable convention de nommage dans Node.js contrôle de flux de code, où une référence à la fonction suivante à exécuter est donné à un rappel pour le coup d'envoi de l'opération.

Voir, par exemple, les exemples de code ici:

Regardons l'exemple que vous avez posté:

function loadUser(req, res, next) {
  if (req.session.user_id) {
    User.findById(req.session.user_id, function(user) {
      if (user) {
        req.currentUser = user;
        next();
      } else {
        res.redirect('/sessions/new');
      }
    });
  } else {
    res.redirect('/sessions/new');
  }
}

app.get('/documents.:format?', loadUser, function(req, res) {
  // ...
});

L' loadUser fonction s'attend à une fonction dans son troisième argument, qui est lié au nom de l' next. C'est une fonction normale de paramètre. Il contient une référence à la prochaine action à effectuer et est appelée une fois loadUser (sauf si un utilisateur n'a pas pu être trouvé).

Il n'y a rien de spécial sur le nom de l' next dans cet exemple, nous pourrions nous l'avons nommé quoi que ce soit.

42voto

pero Points 7952

Il est de convention de nommage utilisé lors du passage de rappels dans les situations qui nécessitent l'exécution de série d'actions, par exemple répertoire analyse -> lire le fichier de données -> faire quelque chose avec les données. C'est de préférence à profondément de nidification les rappels. Les trois premières sections de l'article suivant sur Tim Caswell de HowToNode blog donne un bon aperçu de ce:

http://howtonode.org/control-flow

Voir aussi les Actions Séquentielles section de la deuxième partie de cette publication:

http://howtonode.org/control-flow-part-ii

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