【发布时间】:2013-12-17 12:00:28
【问题描述】:
如何在 nodejs 中访问 mongodb 计数结果,以便异步请求可以访问结果?我可以获得结果并更新数据库,但异步请求无法访问变量或变量为空,并且在发出下一个异步请求时变量似乎已更新。请求不得等待查询完成,并且下一个请求将填充上一个请求的变量。
testOne.increment = function(request) {
var MongoClient = require('mongodb').MongoClient,
format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/bbb_tracking', function(err, db) {
if (err) throw err;
collection = db.collection('bbb_tio');
collection.count({vio_domain:dom}, function(err, docs) {
if (err) throw err;
if (docs > 0) {
var vio_val = 3;
} else {
var vio_val = 0;
}
if (vio_val === 3) {
event = "New_Event";
var inf = 3;
}
db.close();
console.log("docs " + docs);
});
});
};
在上面,即使变量被设置在范围内,它们也不是异步定义的。我能否获得一些关于正确构建它的指导,以便在回调中填充变量。谢谢!
【问题讨论】:
-
你能澄清你的问题吗?目前尚不清楚问题是什么。
-
我将问题更改为“如何通过回调访问 nodejs 中的 mongodb 计数结果?”我无法将 var 结果放入等待查询完成的回调中。这有帮助吗?谢谢!
标签: javascript node.js mongodb asynchronous