Thanks, I would much rather do things the proper async way then rely on a 3rd party library that may not always be around. I will give this a try.

On 4/8/2012 9:24 PM, Matt Patenaude wrote:
In that case, you might consider doing something like this:

function obtainConnection(callback){
    var c = null;
    if (c == null){
        var conn = db.open(... fn() {
            c = conn;
            callback(c);

            // set some close timeout here
        });
    }
    else
        callback(c);
}

function dbQuery(query, callback){
    obtainConnection(fn() {
        db.collection(... fn() {
            db.query(query, callback);
        });
    });
}

Voila! Connection reuse. :)

-Matt

On Apr 8, 2012, at 9:17 PM, Matthew Hazlett wrote:

Thats how I originally did it, but when you need to do multiple queries to the database you shoud open the connection once and reuse it instead of opening it multiple times a session.


On 4/8/2012 9:14 PM, Matt Patenaude wrote:
I agree, it seems entirely manageable.

One low-overhead option would be just to split that out into a function, if it's used frequently:

function dbQuery(query, callback){
   db.open(... fn() {
       db.collection(.... fn() {
            db.query(query, callback);
        });
    });
}


dbQuery("SELET * FROM blah", fn() {
    // stuff you would have done in the inner-most part here
});


-Matt

On Apr 8, 2012, at 9:06 PM, Mark Hahn wrote:

> But as you can see this creates callback hell.

It doesn't look that bad to me.


--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected] <mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected] <mailto:[email protected]>
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected] <mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected] <mailto:[email protected]>
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to