Este es un ejemplo de ello:Teniendo dificultades para tratar de entender 'siguiente/next()' en express.js
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
(etc.)
app.get('/memo', function(req, res) {
console.log("index");
Memo.find({}, function(err, data) {
if(err) return next(err);
res.render('index', { memos: data });
});
});
Y aquí es otra uno:
app.get('/memo/list', function(req, res, next) {
console.log("get memos");
Memo.find({}, function(err, data) {
if(err) return next(err);
res.json(data);
});
});
Tomado de un simple memo pad built on node
Estas son las preguntas que me desconciertan:
- ¿Qué significa exactamente
next/next();
hacer? ¿Qué pasaría si no está presente? - ¿Por qué la segunda parte toma
next
como parámetro y la primera no?
EDIT:
Entonces 'siguiente' llama al siguiente middleware dentro de' app.configure'? Por ejemplo, 'bodyParser -> methodOverride -> etc' para esa particular' app.get'? (Por favor, vea el código adicional que agregué a la parte superior). – alexchenco
Sí de hecho, el orden de la configuración.El middleware entra en una cola y se llaman secuencialmente usando next(). – alessioalex
Para ser claros, en la primera instancia, 'app.get ('/ memo', function (req, res) {...});' el método next() está automáticamente presente, incluso si no está declarado en ' función (req, res) '? – prototype