访问函数node.js之外的函数变量数据

时间:2016-05-02 11:16:37

标签: node.js

我试图在变量之外获取pend变量的值并将其作为响应发送。但是我得到的都是undefined.plz帮助 提前感谢。

(04:55:30  IST) abhi:

app.post('/ getData',function(req,res){
     MongoClient.connect(url,function(err,db){

        for(i=0;i<5;i++)
        {
            var array;
            var id = "4136354161ff135631";
            var cursor =db.collection('messages').find( { "_id": ObjectId(id) } );
            cursor.each(function(err, doc) {
               assert.equal(err, null);
               if (doc != null) {
                  pend=doc;             
               }        
            });  

             if(i === 5(length)){  -------------> response is sent once the loop get over
               console.log(pend);
               res.send(pend);
               db.close();
               }            
        }


});

});

1 个答案:

答案 0 :(得分:0)

至于循环是非同步的,你在计算它之前需要它,请尝试以下方法:

app.post('/getData', function(req, res){               
     MongoClient.connect(url, function(err, db) {

            for(i=0;i<5;i++)
            {
                var array;
                var id = "4136354161ff135631";
                var cursor =db.collection('messages').find( { "_id": ObjectId(id) } );
                cursor.each(function(err, doc) {
                   assert.equal(err, null);
                   if (doc != null) {
                      pend=doc;             
                   }   

                   if(i === 5){ 
                   console.log(pend);
                   res.send(pend);
                   db.close();
                   }        
                });     

            }


    });
});