From de554048eb5250e152e79a4784f5a5e057608904 Mon Sep 17 00:00:00 2001 From: "theis.gaedigk" Date: Wed, 20 Aug 2025 00:20:35 +0200 Subject: [PATCH] added tester --- backend/services/database.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/backend/services/database.js b/backend/services/database.js index 8b6beb2..e53edf5 100644 --- a/backend/services/database.js +++ b/backend/services/database.js @@ -1,16 +1,42 @@ import mysql from "mysql2"; import dotenv from "dotenv"; +import dns from "dns/promises"; dotenv.config(); +// Validate required envs early +const required = ["DB_HOST", "DB_USER", "DB_PASSWORD", "DB_NAME"]; +for (const k of required) { + if (!process.env[k]) { + throw new Error(`Missing required env var: ${k}`); + } +} + const pool = mysql .createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, + waitForConnections: true, + connectionLimit: 10, + queueLimit: 0, }) .promise(); +// Optional: resolve host and test a connection at startup for clearer errors +(async () => { + try { + await dns.lookup(process.env.DB_HOST); + const conn = await pool.getConnection(); + conn.release(); + } catch (e) { + console.error( + `Database connectivity check failed for host "${process.env.DB_HOST}":`, + e.code || e.message + ); + } +})(); + export const loginFunc = async (username, password) => { const [result] = await pool.query( "SELECT * FROM users WHERE username = ? AND password = ?",