From 0015e779ea52d11200395e16aef76190a96b18c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=CA=9C=C9=AA=C9=B4=E1=B4=87=C9=AA=20N=E1=B4=8F=E1=B4=9C?= =?UTF-8?q?=E1=B4=A2=E1=B4=87=C9=B4?= <157171073+Shineii86@users.noreply.github.com> Date: Tue, 9 Jun 2026 04:51:26 +0530 Subject: [PATCH] fix: health endpoint typo and request counter middleware order --- src/routes/apiRoutes.js | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/routes/apiRoutes.js b/src/routes/apiRoutes.js index a6ecd27..8815f70 100644 --- a/src/routes/apiRoutes.js +++ b/src/routes/apiRoutes.js @@ -57,6 +57,24 @@ import { categoryRoutes } from "./category.route.js"; * createApiRoutes(app, jsonResponse, jsonError); */ const createApiRoutes = (app, jsonResponse, jsonError) => { + // ══════════════════════════════════════════════════════════════ + // REQUEST COUNTER (must be before all routes) + // ══════════════════════════════════════════════════════════════ + +const startTime = Date.now(); +let requestCount = 0; +let errorCount = 0; + +app.use((req, res, next) => { + if (req.path.startsWith("/api")) { + requestCount++; + res.on("finish", () => { + if (res.statusCode >= 400) errorCount++; + }); + } + next(); +}); + // ══════════════════════════════════════════════════════════════ // HOME // ══════════════════════════════════════════════════════════════ @@ -332,21 +350,6 @@ categoryRoutes(app, jsonResponse, jsonError); // HEALTH & STATS // ══════════════════════════════════════════════════════════════ -const startTime = Date.now(); -let requestCount = 0; -let errorCount = 0; - -// Middleware to count requests -app.use((req, res, next) => { - if (req.path.startsWith("/api")) { - requestCount++; - res.on("finish", () => { - if (res.statusCode >= 400) errorCount++; - }); - } - next(); -}); - // ---- FEATURE: Health check endpoint ---- app.get("/api/health", (req, res) => { const uptime = Math.floor((Date.now() - startTime) / 1000); @@ -359,7 +362,7 @@ app.get("/api/health", (req, res) => { results: { status: "healthy", version: "1.7.2", - uptime: `${hours}h ${minutes}m ${s}s`, + uptime: `${hours}h ${minutes}m ${seconds}s`, uptimeSeconds: uptime, timestamp: new Date().toISOString(), node: process.version,