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.

Reply via email to