如何在NodeJS中获取回调函数返回值

时间:2011-09-08 13:26:01

标签: mongodb node.js mongoose

下面的代码使用mongoskin进行与nodejs的mongodb访问。 如何从外部访问回调函数返回值?

app.get('/', function(req, res) {

    var ret = db.collection('counters').findAndModify(
        {_id: 'messagetransaction'},
        [],
        {$inc : {next: 1}},
        true,
        true,
        function(err, counter) {
            if (err) { 
                throw err;
            }else{
                console.log(counter.next);
                return counter.next;
            }       
        }
    );

});


console.log(ret);

我收到如下错误,

ReferenceError: ret is not defined

请帮助我!

1 个答案:

答案 0 :(得分:3)

问题是你永远不知道回调什么时候会发生;它的异步。因此,您不希望在结果上等待任何事情。你应该做的不是返回一个值,你应该调用一个函数,传递值,并且该函数应该按照你希望它对结果做的。