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