From 8761f1e07ef2fa47f14e3289766071f94217d6b9 Mon Sep 17 00:00:00 2001 From: Fachba Date: Mon, 20 Oct 2025 10:21:24 +0700 Subject: [PATCH] check connection db --- app.js | 20 ++++++++++++++++++++ config/index.js | 13 +++++++++++++ 2 files changed, 33 insertions(+) diff --git a/app.js b/app.js index 8674820..c83b7ff 100644 --- a/app.js +++ b/app.js @@ -8,6 +8,7 @@ const helmet = require("helmet"); const compression = require("compression"); const unknownEndpoint = require("./middleware/unKnownEndpoint"); const { handleError } = require("./helpers/error"); +const { checkConnection } = require("./config"); const app = express(); @@ -24,6 +25,25 @@ app.use("/api", routes); app.get("/", (req, res) => res.send("

HAHALO

") ); + +app.get("/check-db", async (req, res) => { + try { + const isConnected = await checkConnection(); + res.json({ + success: isConnected, + message: isConnected + ? "Koneksi database OK" + : "Koneksi database gagal", + }); + } catch (error) { + res.status(500).json({ + success: false, + message: "Terjadi kesalahan saat cek koneksi database", + error: error.message, + }); + } +}); + app.use(unknownEndpoint); app.use(handleError); diff --git a/config/index.js b/config/index.js index 2ee4f79..fe0b713 100644 --- a/config/index.js +++ b/config/index.js @@ -28,6 +28,18 @@ const poolPromise = new sql.ConnectionPool(config) process.exit(1); }); +async function checkConnection() { + try { + const pool = await poolPromise; + await pool.request().query('SELECT 1 AS isConnected'); + console.log('🔍 SQL Server terkoneksi dengan baik'); + return true; + } catch (error) { + console.error('⚠️ Gagal cek koneksi SQL Server:', error); + return false; + } +} + /** * Wrapper query (auto konversi $1 → @p1) */ @@ -223,6 +235,7 @@ async function generateKode(prefix, tableName, columnName) { } module.exports = { + checkConnection, query, buildFilterQuery, buildStringOrIlike,