2012-07-01 2 views
2

В приведенном ниже коде я пытаюсь получить данные пользователя из БД и сохранить его в сеансе. Но, к сожалению, это не работает, как я ожидал, данные не записываются в переменную сеанса. Думаю, это из-за перевала по стоимости? Любое обходное решениеДобавить данные в сеанс в nodejs express в обратном вызове


exports.check = function(req,res,next){ 
    .. 
    .. 
    getUserFromDB(req); 
} 

function getUserFromDB(req){ 
    .. 
    db.findOne(query,function(doc){ 
     req.session.user = doc; 
    }) 
} 

ответ

4

Я думаю, что вам не нужен обратный звонок. Вы используете экспресс и mongodb? Мы должны опубликовать полные рабочие примеры :)

exports.check = function (req, res, next) { 
    getUserFromDB(req, next); 
}; 

function getUserFromDB(req, callback) { 
    db.findOne({ _id: req.qs.id }, function (err, doc) { 
    req.session.user = doc; 
    callback(err); 
    }); 
} 
0

Также проверьте наличие ошибки, а также нулевой документ (не найден).

Смежные вопросы