2011-09-12 10 views
6

Estoy utilizando el nodo js con express. Ahora necesito realizar una acción común para todas las solicitudes, por ej. cookie checkingnodejs realiza una acción común para todas las solicitudes

app.get('/',function(req, res){ 
    //cookie checking 
    //other functionality for this request 
}); 

app.get('/show',function(req, res){ 
    //cookie checking 
    //other functionality for this request 
}); 

Aquí la comprobación de cookies es una acción común para todas las solicitudes. Entonces, ¿cómo puedo hacer esto sin repetir el código de comprobación de cookies en todos los app.get?

Sugerencias para solucionar esto? Gracias de antemano

Respuesta

3

app.all o utilice un middleware.

8

Echa un vistazo a loadUser example from the express docs on Route Middleware. El patrón es:

function cookieChecking(req, res, next) { 
    //cookie checking 
    next(); 
} 


app.get('/*', cookieChecking); 

app.get('/',function(req, res){ 
    //other functionality for this request 
}); 

app.get('/show',function(req, res){ 
    //other functionality for this request 
}); 
2

El uso del middleware es muy recomendable, de alto rendimiento y muy económico. Si la acción conjunta que se realiza es una característica pequeña sugiero añadir este muy simple de middleware en sus app.js archivo:

... 
app.use(function(req,res,next){ 
    //common action 
    next(); 
});... 

Si utiliza enrutador: escribir el código antes de la instrucción app.use(app.router);.

Cuestiones relacionadas