我正在使用MongoDB的Node.JS驱动程序,我想执行同步查询,如下所示:
function getAThing()
{
var db = new mongo.Db("mydatabase", server, {});
db.open(function(err, db)
{
db.authenticate("myuser", "mypassword", function(err, success)
{
if (success)
{
db.collection("Things", function(err, collection)
{
collection.findOne({ name : "bob"}, function(err, thing)
{
return thing;
});
});
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
问题是,db.open是一个异步调用(它不会阻塞),因此getAThing返回"undefined",我希望它返回查询结果.我确信我可以使用某种阻塞机制,但我想知道做这样的事情的正确方法.