38 lines
1.6 KiB
JavaScript
Executable File
38 lines
1.6 KiB
JavaScript
Executable File
// =============================================================
|
||
// 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),
|
||
};
|