2016-07-23 3 views
0

나는 Heroku Postgres를 사용하고 있으며 응용 프로그램에서 쿼리를 실행할 때마다 연결이 열려 있습니다. 이로 인해 동시 연결 수가 너무 많아 오류가 발생합니다. 내가 조금 내 응용 프로그램을 사용 후 배포, 나는이 오류를 얻을 때연결 관리 PostgreSQL과 Node.js

는 :

{"name":"error","length":109,"severity":"FATAL","code":"53300","file":"miscinit.c","line":"551","routine":"InitializeSessionUserId"} 

이 방법은 I은 다음과 같습니다

{"name":"error","length":109,"severity":"FATAL","code":"53300","file":"miscinit.c","line":"551","routine":"InitializeSessionUserId"} 

내가 로컬로 실행하고 나는이 오류 데이터베이스를 쿼리해야 할 때마다 쿼리를 처리합니다.

router.route('/campaigns') 
    .get(restrictTo('advertiser'), function(req, res) { 
     pg.defaults.ssl = true; 
     pg.connect(`DATABASE_URL`, function(err, client, done) { 
      if (err) { 
       console.log('Connection issue when retrieving data, error will be thrown: ' + JSON.stringify(err)); 
       throw err; 
      } else { 
       client.query(`SELECT * FROM campaign WHERE agentid = ${req.user.agentid};`, 
        function (err, result) { 
         if(err) 
          console.log(err.toString()); 
         res.render('console/campaigns', result); 
        }); 
      } 

     }) 
    }) 

연결이 닫히지 않는다고 나는 믿는다. 어떻게 해결할 수 있습니까?

+0

[pg-promise] (https://github.com/vitaly-t/pg-promise)를 사용하면 수동으로 연결할 필요가 없으므로 이런 종류의 문제가 발생하지 않습니다. 모든. –

+0

네, 그게 제가 한 일입니다.하지만 이것을 알아 내기 전에 하루가 걸렸습니다. – ocram

+0

@ vitaly-t''pg-promise'에 대한 질문이 있습니다 : http://stackoverflow.com/questions/38545958/return-in-pg-promise – ocram

답변

0

각 질문이 완료되면 연결을 종료하기 위해 client.end();을 사용해야합니다.