javascript - nodejs - next node js
javascript node.js next() (2)
Veo un montón de uso a next
en node.js.
¿Qué es, de dónde viene? ¿Qué hace? ¿Puedo usarlo del lado del cliente?
Lo siento, por ejemplo, se usa aquí: http://dailyjs.com/2010/12/06/node-tutorial-5/
busca la función loadUser.
Es la convención de nomenclatura utilizada al pasar devoluciones de llamada en situaciones que requieren la ejecución en serie de acciones, por ejemplo, escanear el directorio -> leer datos de archivo -> hacer algo con los datos. Esto es preferible a anidar profundamente las devoluciones de llamada. Las primeras tres secciones del siguiente artículo en el blog HowToNode Tim Caswell ofrecen una buena descripción de esto:
http://howtonode.org/control-flow
Consulte también la sección Acciones secuenciales de la segunda parte de esa publicación:
Esto parece ser una convención de nomenclatura variable en el código de flujo de control Node.js, donde se da una referencia a la siguiente función para ejecutar una devolución de llamada para que comience cuando esté listo.
Ver, por ejemplo, los ejemplos del código aquí:
Veamos el ejemplo que publicaste:
function loadUser(req, res, next) {
if (req.session.user_id) {
User.findById(req.session.user_id, function(user) {
if (user) {
req.currentUser = user;
return next();
} else {
res.redirect(''/sessions/new'');
}
});
} else {
res.redirect(''/sessions/new'');
}
}
app.get(''/documents.:format?'', loadUser, function(req, res) {
// ...
});
La función loadUser
espera una función en su tercer argumento, que está vinculada al nombre next
. Este es un parámetro de función normal. Tiene una referencia a la siguiente acción a realizar y se llama una vez que se realiza loadUser
(a menos que no se haya podido encontrar un usuario).
No hay nada especial sobre el nombre a next
en este ejemplo; podríamos haberlo llamado cualquier cosa.