Как передать переменные из ПО промежуточного слоя Connect's в действие app.get -?

Я хотел бы создать что-то вроде перед фильтром , который позволяет мне сделать текущего пользователя доступным во всех действиях. Подход followint работает хорошо, и мне даже не нужно было объявлять глобальную переменную :

app.use(function(req, res, next){
    if(req.session.user_id){
        /* Get user from database
           and share it in a variable
           that can be accessed frooom...
        */
        User.find({ /*... */ }, function(err, users){
            if(users.length == 1){
                req.current_user = users[0];
            }
            next();
        });
    }
    else{
        next();
    }
});

app.get('/', function(req, res){
    //... here!!
    console.log(req.current_user);
    res.render('index', {
        current_user: req.current_user,
    });
});

. Но я все еще не уверен, можно ли манипулировать req, потому что я не знаю, правильно ли изменять что-то, что не принадлежит мной? Есть лучший способ сделать это?

13
задан YMMD 2 May 2012 в 10:54
поделиться