← back to Ken
src/lib/db.js
33 lines
const { Pool } = require('pg');
function requiredEnv(name) {
const value = process.env[name];
if (!value) {
throw new Error(`Missing required environment variable: ${name}`);
}
return value;
}
const pool = new Pool({
connectionString: requiredEnv('DATABASE_URL'),
max: 10,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 5000,
});
pool.on('error', (err) => {
console.error('[DB] Unexpected error on idle client:', err.message);
});
async function query(text, params) {
const start = Date.now();
const res = await pool.query(text, params);
const duration = Date.now() - start;
if (duration > 1000) {
console.warn(`[DB] Slow query (${duration}ms):`, text.substring(0, 80));
}
return res;
}
module.exports = { pool, query };