0
データベースに接続してクエリを実行するために使用するpostgresヘルパーを作成しました。コード:NodeJS Postgresヘルパー - リリース接続
var pg = require('pg');
var dbConn = require('../config.json').dbConn;
var pool = new pg.Pool(dbConn);
var status = {
"OK": 0,
"ERROR": 1
};
var message = {
"success": "success",
"error": "error",
"databaseError": "Database error"
};
var helper = {
query: function (query, params, success, error) {
pool.connect(function (err, client, done) {
if (err) {
error({
status: status.ERROR,
message: message.databaseError,
data: err
});
return;
}
client.query(query, params, function (err, result) {
//call `done()` to release the client back to the pool
done();
if (err) {
error({
status: status.ERROR,
message: message.databaseError,
data: err
});
return;
}
success({
status: status.OK,
message: message.success,
result: result
});
});
});
}
};
module.exports = helper;
それが実行されたクエリの後に接続を解除するロジックを持っていません。だからしばらくして、データベースのエラーが発生します。「クライアントが多すぎます...」 誰かに私にその方法を教えてもらえますか?一度私はclose()やrelease()関数を呼び出す)しようとしましたが、接続が壊れてしまい、アプリケーションを再起動するまで新しいリクエストを作成できませんでした。
:あなたはトランザクションを使用している場合、あなたはおそらく、あなたが何をしたいのほとんどの世話をするpool.queryの便利なメソッドをご覧ください-promise](https://github.com/vitaly-t/pg-promise);) –