Чтобы использовать Client
из модуля pg
, необходимо создать новый экземпляр Client
для каждого запроса к базе данных, поскольку каждый клиент представляет разных пользователей и соединения.Таким образом, вы должны рассматривать их как одноразовый экземпляр использования:
const {Client} = require('pg');
const dbConn = {
user: "x",
password: "x",
host: "x",
port: 123,
database: "abc",
ssl: true
};
module.exports = {
async select( sql ){
const db = new Client(dbConn); // <-- Create new Client for every call
try{
await db.connect();
console.log("Connected to DB");
const result = await db.query( sql );
console.table(result.rows); // <-- Shows the data i want to send back.
return JSON.stringify(result.rows);
}
catch(ex){
console.log("We messed up! " + ex);
}
finally{
await db.end();
console.log("DB connection closed");
}
}
};
В вашем случае, также как , рекомендованный в документации , вы бы хотели Пул .По сути, это то же самое, что и Клиент , за исключением того, что теперь Пул будет управлять клиентами для вас внутри.
С вашей точки зрения, на самом деле это не сильно отличается от клиента, за исключением того, что он намного проще.
const {Pool} = require('pg');
// Notice here
const db = new Pool({
user: "x",
password: "x",
host: "x",
port: 123,
database: "abc",
ssl: true
});
module.exports = {
async select( sql ){
try
const result = await pool.query( sql ); // <-- Notice here
console.table(result.rows); // <-- Shows the data i want to send back.
return JSON.stringify(result.rows);
}
catch(ex){
console.log("We messed up! " + ex);
}
/* No need to release client as Pool does it for you internally */
}
};