2011-09-08 2 views
1

Ci-dessous le code utilise mongoskin pour l'accès mongodb avec nodejs. Comment accéder à la valeur de retour de la fonction de rappel depuis l'extérieur?Comment obtenir les valeurs de retour de la fonction de rappel dans 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); 

Je suis l'erreur comme ci-dessous,

ReferenceError: ret is not defined 

S'il vous plaît aidez-moi à ce sujet!

Répondre

3

Le problème est que vous ne savez jamais quand le rappel va se déclencher; c'est asynchrone. Par conséquent, vous ne voulez rien avoir à attendre sur le résultat. Ce que vous devez faire est de retourner une valeur au lieu de renvoyer une valeur, vous devez invoquer une fonction, en passant la valeur, et cette fonction devrait faire ce que vous voulez qu'elle fasse avec le résultat.

Questions connexes