Quelle est la bonne façon de faire un synchrones MongoDB requête en Node.js?

Je suis en utilisant le Node.JS pilote pour MongoDB, et j'aimerais effectuer une requête synchrone, comme tel:

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;
                    });
                });
            }
        });
    });
}

Le problème est, db.open est une asychronous appel (il n'a pas de bloc), de sorte que le getAThing retourne "undefined" et je veux qu'il renvoie les résultats de la requête. Je suis sûr que j'aurais une sorte de mécanisme de blocage, mais je voudrais connaître la bonne façon de faire quelque chose comme cela.

InformationsquelleAutor Mike Pateras | 2012-08-19