nodejs выполняет общее действие для всего запроса - PullRequest
6 голосов
/ 12 сентября 2011

Я использую узел JS с экспресс. Теперь мне нужно выполнить общее действие для всех запросов ex. проверка печенья

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 
}); 

Здесь проверка файлов cookie является общим действием для всех запросов. Так, как я могу выполнить это без повторения кода проверки cookie во всех app.get.

Предложения по исправлению? Заранее спасибо

Ответы [ 3 ]

8 голосов
/ 12 сентября 2011

Ознакомьтесь с примером loadUser из экспресс-документации по Route Middleware . Узор:

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 
}); 
3 голосов
/ 12 сентября 2011

app.all или используйте промежуточное ПО.

2 голосов
/ 13 января 2014

Использование промежуточного программного обеспечения рекомендуется, высокоэффективно и очень дешево. Если обычное действие, которое нужно выполнить, это крошечная функция, я предлагаю добавить это очень простое промежуточное ПО в ваш файл app.js :

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

Если вы используете router : напишите код перед инструкцией app.use(app.router);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...