Sorry, put that "var c = null;" outside the function, and maybe give it a less 
likely to be messed with name like var __persistentDBConnection = null;

-Matt

On Apr 8, 2012, at 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 nodejs@googlegroups.com
>>>> To unsubscribe from this group, send email to
>>>> nodejs+unsubscr...@googlegroups.com
>>>> 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 nodejs@googlegroups.com
>>> To unsubscribe from this group, send email to
>>> nodejs+unsubscr...@googlegroups.com
>>> 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 nodejs@googlegroups.com
>> To unsubscribe from this group, send email to
>> nodejs+unsubscr...@googlegroups.com
>> 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 nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> 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 nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to