Thanks for the replies. The reason I built it this way was beacuse of these reasons:
- Each user has its own Database with a list of schemes. (IE new connection every time, can't reuse a mass pool on a specific database) - Spamming API requests would open up a massive amount of connections, that are never killed off, resulting in the postgres instance to eventually be smocked full. This is why I thought opening and closing was good. How would you recommend handling the above issues? Den tisdagen den 25:e november 2014 kl. 01:36:44 UTC+1 skrev Alex Kocharin: > > > Opening and closing database connection per request is a very bad > idea. Database connection should be opened permanently and re-used across > many different requests, this way you save milliseconds establishing it. > > knex allows connection pooling. Use it. > > > 25.11.2014, 01:09, "Alex Spencer" <[email protected] <javascript:>>: > > Hey. > > Need some advice on an api application built using: > - express > - knexjs > - postgres > > My question is if im handling database operations correctly or if im doing > it completely wrong.. See example > > var knex = require('knex'); > app.get('/example/:param', > loadWithParam(), > updateWithParam(), > render.staticOK() > > function loadWithParam() { > return function(req, res, next) { > var db = knex({conConfig}); > db(tableName).where(field, req.params.param).select().then(function(rows) > { > db.destroy(function() { > res.locals[tableName] = rows; > next(); > }); > }).catch(function(err) { > ... > }); > }; > } > > function updateWithParam() { > return function(req, res, next) { > if(res.locals[tableName].length === 0) { > return next(); > } > var db = knex({conConfig}); > db(tableName).where(field, req.params.param).update({field: value}).then( > function() { > db.destroy(function() { > next(); > }); > }).catch(function(err) { > ... > }); > }; > } > > > In short my question is if its good or bad practise opening up and closing > database connections per operation required to run? Ive been told setting > up a database connection on res.locals upon receiving a request is better, > but i disagree.. > > Thanks > > > -- > Job board: http://jobs.nodejs.org/ > New group rules: > https://gist.github.com/othiym23/9886289#file-moderation-policy-md > Old group rules: > 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 unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] <javascript:> > . > To view this discussion on the web visit > https://groups.google.com/d/msgid/nodejs/408d3fd6-dd6c-4621-9030-99ff2e3fe7d6%40googlegroups.com > > <https://groups.google.com/d/msgid/nodejs/408d3fd6-dd6c-4621-9030-99ff2e3fe7d6%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: 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 unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/bb064078-9578-4082-b74a-284bac1092f5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
