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]
>>> 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
>
>
> --
> 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