我试图在变量之外获取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();
}
}
});
});
答案 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();
}
});
}
});
});