0

我有一个 node.js 应用程序,它在 Heroku 上运行了一个 postgresql 数据库,由于某些原因select,在多次成功尝试似乎根本没有理由的情况下,功能似乎中断并开始失败..

示例代码:

pg.connect(database_url, function(err, client) {
    if(client) {
        var date = new Date();
        var query = client.query('SELECT * FROM accounts',function(err, result) {
            if(!err) {
                res.send(JSON.stringify(result.rows));
                accounts = JSON.stringify(result.rows);
            } else {
                res.send('failed');
            }
        });
    } else {
        res.send(JSON.stringify(err));
    }
});

上面的代码完美运行了大约 10 次,然后似乎突然中断了。

我该如何解决这个问题?

4

1 回答 1

1

如果它工作了 10 次,但在 11 日失败了,那可能是因为连接池已经用完了。

完成请求后,您应该调用done代码,将数据库连接发送回池。

pg.connect(database_url, function(err, client, done) {
    if(client) {
        var date = new Date();
        var query = client.query('SELECT * FROM accounts',function(err, result) {
            if(!err) {
                res.send(JSON.stringify(result.rows));
                accounts = JSON.stringify(result.rows);
            } else {
                res.send('failed');
            }
            done(); // call done to close the conection
        });
    } else {
        res.send(JSON.stringify(err));
    }
});

请参阅文档connect

于 2013-07-04T06:47:58.207 回答