git commit -m "fix: Fehlerbehandlung für fehlende gis_lines-Tabelle und Verwendung des DB-Namens aus .env

- Verhindert Absturz der Anwendung, wenn die gis_lines-Tabelle fehlt
- Gibt stattdessen eine Warnung in der Konsole aus
- Stellt sicher, dass der Datenbankname dynamisch aus der .env-Datei geladen wird"
This commit is contained in:
ISA
2025-02-05 12:27:44 +01:00
parent 8ef3814ef2
commit 52e9939eb8
4 changed files with 61 additions and 17 deletions

View File

@@ -2,29 +2,34 @@
import getPool from "../../../../utils/mysqlPool"; // Singleton-Pool importieren
export default async function handler(req, res) {
const pool = getPool(); // Singleton-Pool verwenden
const pool = getPool();
let connection;
if (req.method !== "GET") {
return res.status(405).json({ error: "Nur GET Methode erlaubt" });
}
const query = "SELECT * FROM talas_v5.gis_lines;";
const databaseName = process.env.NEXT_PUBLIC_DB_NAME; //talas_v5
const query = `SELECT * FROM ${databaseName}.gis_lines;`;
try {
// Verbindung aus dem Pool holen
connection = await pool.getConnection();
// Abfrage ausführen
const [results] = await connection.query(query);
if (results.length > 0) {
res.status(200).json(results);
return res.status(200).json(results);
} else {
res.status(404).json({ error: "Gerät nicht gefunden" });
console.warn(`WARNUNG: Die Tabelle ${databaseName}.gis_lines ist leer oder existiert nicht.`);
return res.status(200).json({ message: `Die Tabelle ${databaseName}.gis_lines ist leer oder existiert nicht.` });
}
} catch (error) {
if (error.code === "ER_NO_SUCH_TABLE") {
console.warn(`WARNUNG: Die Tabelle ${databaseName}.gis_lines existiert nicht.`);
return res.status(200).json({ message: `Die Tabelle ${databaseName}.gis_lines existiert nicht.` });
}
console.error("Fehler beim Abrufen der gis_lines:", error);
res.status(500).json({ error: "Fehler beim Abrufen der gis_lines" });
return res.status(500).json({ error: "Fehler beim Abrufen der gis_lines" });
} finally {
if (connection) connection.release(); // Verbindung freigeben
if (connection) connection.release();
}
}