Was ist der richtige Weg, um eine synchrone MongoDB-Abfrage in Node.js durchzuführen?
Ich verwende den Node.JS-Treiber für MongoDB und möchte eine synchrone Abfrage durchführen, z.
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;
});
});
}
});
});
}
Das Problem ist, dass db.open ein asynchroner Aufruf ist (er blockiert nicht), daher gibt getAThing "undefined" zurück und ich möchte, dass er die Ergebnisse der Abfrage zurückgibt. Ich bin sicher, ich könnte eine Art Blockierungsmechanismus verwenden, aber ich würde gerne wissen, wie man so etwas richtig macht.