2011-09-08 226 views
1

下面是代码使用mongoskin进行mongodb访问nodejs。 我如何从外部访问回调函数的返回值?如何获取NodeJS中的回调函数返回值

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 

请帮我在这!

回答

3

问题是,你永远不知道什么时候回调要触发;它的异步。因此,您不希望有任何结果等待。你应该做的是不要返回一个值,你应该调用一个函数,传递值,该函数应该做你想要的结果。