Estoy aprendiendo express.js/node.js y tengo una buena pero no excelente comprensión del modelo de prototipo de JavaScript. Por lo tanto, estoy un poco confundido sobre la forma en que el middleware se puede apilar en los mecanismos de enrutamiento de express.js.Alcance de las funciones de middleware en express.js
Digamos que tenemos esta code
function andRestrictTo(role) {
return function(req, res, next) {
req.authenticatedUser.role == role
? next() : next(new Error('Unauthorized'));
}
}
app.del('/user/:id', loadUser, andRestrictTo('admin'), function(req, res){
res.send('Deleted user ' + req.user.name);
});
Desde andRestrictTo (papel) devuelve un middleware, es conseguir ejecutado en la cadena de conducción - Tengo que. Sin embargo:
¿De dónde provienen los parámetros siguientes, res, next en la función devuelta? Supongo que la "cadena" de alguna manera lo está poniendo en cola y confirma los parámetros, pero esto es un poco demasiado vago para una comprensión más profunda ...
¿Qué está pasando con el error que se plantea como el siguiente parámetro? ¿Un error simplemente rompe la cadena de middleware?
Si quisiera empaquetar el mecanismo de restricción en un archivo/módulo separado (como un marco de seguridad), ¿cómo se haría eso?
Sería genial si alguien podría señalar la idea básica :)