Jaki jest właściwy sposób utworzenia synchronicznego zapytania MongoDB w Node.js?
Używam sterownika Node.JS dla MongoDB i chciałbym wykonać synchroniczne zapytanie, takie jak:
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;
});
});
}
});
});
}
Problem polega na tym, że db.open jest asychronicznym wywołaniem (nie blokuje), więc getAThing zwraca „undefined” i chcę, aby zwrócił wyniki zapytania. Jestem pewien, że mógłbym zablokować jakiś mechanizm, ale chciałbym znać właściwy sposób na zrobienie czegoś takiego.