【问题标题】:Managing connections PostgreSQL and Node.js管理连接 PostgreSQL 和 Node.js
【发布时间】:2016-11-27 04:51:44
【问题描述】:

我正在使用 Heroku Postgres,每次在我的应用程序中运行查询时,连接都会保持打开状态。这会导致同时连接过多,从而导致错误。

在部署时,在我使用我的应用程序一段时间后,我得到了这个错误:

{"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);
                    });
            }

        })
    })

我做错了什么,因为我相信连接没有关闭。我该如何解决?

【问题讨论】:

标签: node.js postgresql express heroku heroku-postgres


【解决方案1】:

我认为您应该在每次查询完成后使用client.end(); 来关闭连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2021-04-13
    • 2011-09-13
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    相关资源
    最近更新 更多