そのため、pg-promise を使用してデータベースにクエリを実行しています。heroku postgres(無料版)を使っているので、最大接続数は20です。
データベースに接続するには、次を使用します
pgp(process.env.DATABASE_URL + '?poolSize=10')
.connect()
.then( sco => {
dbclient = sco;
})
.catch( err => {
console.error(err);
})
クエリを実行するために dbclient 変数を使用しています。
dbclient
.one('select ...')
.then(() => ...)
.catch( res.status(500).send);
プール サイズを 10 に設定しているにもかかわらず、接続数が際限なく増加し、アプリがクラッシュします。
どうすればこれを解決できますか? クエリを実行するたびにクライアントを解放する必要がありますか?
編集:
だから私は自分のコードを編集しました.これはまさに私が今それを使用している方法であり、私はまだ同じ問題を抱えています.
const pgp = require('pg-promise')();
pgp.pg.defaults.poolSize = 10;
router.get('/', (req, res) => {
pgp(process.env.DATABASE_URL).any('select ...')
.then((result) => res.status(200).send(result))
.catch(err => res.status(500).send({err}));
});