0
我使用的Heroku Postgres的每一次我在我的應用程序運行查詢時的連接保持打開狀態。這導致太多的同時連接並因此導致錯誤。管理連接PostgreSQL和Node.js的
當部署後,我用我的應用程序進行了一下我得到這個錯誤:
{"name":"error","length":109,"severity":"FATAL","code":"53300","file":"miscinit.c","line":"551","routine":"InitializeSessionUserId"}
當我在本地運行我得到這個錯誤:
{"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);
});
}
})
})
我做錯了什麼,因爲我相信連接不會關閉。我該如何解決它?
如果使用[PG-承諾(https://github.com/vitaly-t/pg-promise),你將永遠不會有這樣那樣的問題,因爲你不會需要做的手動連接所有。 –
是的,這就是我所做的,但是我花了整整一天才弄清楚了這一點。 – ocram
@ vitaly -t我會對'pg-promise'有個疑問:http://stackoverflow.com/questions/38545958/return-in-pg-promise – ocram