Node,Mongoose - 无法在查询回调中访问父作用域

时间:2014-11-17 09:37:46

标签: javascript node.js mongodb callback scope

我有点困惑为什么我没有在Mongoose查询回调中看到父作用域,这是我的代码:

var P = require('bluebird');

var getUser = P.promisify(
    function(userId, locals, next){

        logger.info(locals); //{offer: 1}

        User.findOne({_id: userId}).lean().exec(function(err, user){
            logger.info(locals); //undefined
            if(err){return next(err);}
            if(!locals)
                locals = {user: user};
            else{
                locals.user = user;
            }
            return next(null, locals);
        });
    }
);

var locals = {offer: 1};

getUser(user._id, locals);

我用两个参数调用getUser函数,在函数的作用域中我可以看到它们两者,但我需要访问mongoose回调中的locals变量而不是看到父作用域值范围。

关于如何解决这个问题的任何想法?

提前致谢

0 个答案:

没有答案