2011-09-08 487 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

問題是,你永遠不知道什麼時候回調要觸發;它的異步。因此,您不希望有任何結果等待。你應該做的是不要返回一個值,你應該調用一個函數,傳遞值,該函數應該做你想要的結果。