設定
- PostgreSQL 13.5
- Node.js 14.16.1
- pg(node-postgres) 8.7.1
問題
- Node.jsからDBに対するクエリのレスポンスが返ってこない
- 以下のコードの
results
が返らない
- 以下のコードの
model.js
exports.getUserByUserId = async function (user_id) {
var query = {
text: "select * from users where user_id = $1;",
values: [user_id],
};
await pool.connect();
try {
results = await pool.query(query);
return results.rows[0];
} catch (e) {
console.log(e);
}
};
- psqlでCUIから接続しようとすると以下のエラーで接続できない
psql: error: connection to server at [name] ([ip_address]), port [port_number]
failed: FATAL: too many connections for role [name]
▸ psql exited with code 2
先行事例の調査
- 以下では解決できなかった
原因
- connectionが溜まっている
解決
- connectionをreleaseする
model.js
exports.getGroupByGroupId = async function (group_id) {
var query = {
text: "select * from groups where group_id = $1;",
values: [group_id],
};
client = await pool.connect();
try {
results = await client.query(query);
client.release();
return results.rows[0];
} catch (e) {
console.log(e);
}
};