Files
Cantor-Najman-Site/server/db.js
Ari Yeger f0b66e6335
Some checks failed
deploy / deploy (push) Failing after -22s
initial commit
2025-07-17 15:20:56 -04:00

33 lines
1020 B
JavaScript

import dotenv from 'dotenv';
import {Pool} from 'pg';
dotenv.config();
const pool = new Pool(process.env.DATABASE_URL ? {connectionString: process.env.DATABASE_URL} : {
user: process.env.DB_USER,
host: process.env.DB_HOST,
database: process.env.DB_NAME,
password: process.env.DB_PASSWORD,
port: parseInt(process.env.DB_PORT || '5432', 10),
});
/**
* Generic query function for PostgreSQL database.
* @param {string} text
* @param {any[]} [params]
* @return {Promise<any[]>}
*/
async function query(text, params= []) {
let textAndVals = text;
if (params) for (let i = 0; i < params.length; i++) textAndVals = textAndVals.replace("$".concat(String(i + 1)), params[i]);
console.debug('query', textAndVals);
const start = Date.now();
const res = await pool.query(text, params).then(qr => qr);
const duration = Date.now() - start;
console.log('executed query', {textAndVals, duration, rows: res.rowCount});
return res.rows;
}
export default {
pool,
query
};