zkt26/zadanie 1/backend/db.js
2026-03-22 12:58:49 +01:00

38 lines
1.6 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// =============================================================
// db.js Pripojenie k PostgreSQL databáze
// =============================================================
// Tento modul exportuje funkciu query(), ktorú voláme v server.js
// Namiesto priameho pripájania pri každom requeste používame
// "connection pool" znovupoužiteľné pripojenia (efektívnejšie)
// =============================================================
const { Pool } = require('pg');
// Pool skupina otvorených pripojení k databáze
// Keď príde request, vezme voľné pripojenie z poolu a vráti ho späť
// Konfigurácia sa číta z premenných prostredia (environment variables)
// Tie nastavíme v Docker Compose takto kód nevie o konkrétnom hesle
const pool = new Pool({
host: process.env.DB_HOST || 'localhost', // adresa DB servera
port: parseInt(process.env.DB_PORT) || 5432, // štandardný PostgreSQL port
database: process.env.DB_NAME || 'blog', // názov databázy
user: process.env.DB_USER || 'blog_user', // používateľ DB
password: process.env.DB_PASSWORD || 'blog_pass', // heslo
});
// Otestujeme pripojenie hneď pri štarte servera
pool.connect((err, client, release) => {
if (err) {
console.error('Chyba pri pripájaní k databáze:', err.message);
} else {
console.log('Úspešne pripojený k PostgreSQL databáze');
release(); // vrátime pripojenie späť do poolu
}
});
// Exportujeme pomocnú funkciu query()
// Ostatné súbory ju volajú ako: db.query('SELECT ...', [param1, ...])
module.exports = {
query: (text, params) => pool.query(text, params),
};