From 75a022a3726264396f8cfc4d338473bb3c0dae69 Mon Sep 17 00:00:00 2001 From: ai-implementer Date: Mon, 14 Sep 2026 08:00:44 +0000 Subject: [PATCH] [QOTD-18] Implement global error-handling middleware Add src/middleware/error.ts with a four-argument Express error handler that logs errors server-side via console.error and responds with HTTP 500 and a generic { error: 'Internal server error' } body, never leaking stack traces to the client. Register it last in a new src/server.ts entry point. --- src/middleware/error.ts | 11 +++++++++++ src/server.ts | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/middleware/error.ts create mode 100644 src/server.ts diff --git a/src/middleware/error.ts b/src/middleware/error.ts new file mode 100644 index 0000000..cb2ed34 --- /dev/null +++ b/src/middleware/error.ts @@ -0,0 +1,11 @@ +import type { NextFunction, Request, Response } from 'express'; + +export function errorHandler( + err: unknown, + _req: Request, + res: Response, + _next: NextFunction +): void { + console.error(err); + res.status(500).json({ error: 'Internal server error' }); +} diff --git a/src/server.ts b/src/server.ts new file mode 100644 index 0000000..e61c44f --- /dev/null +++ b/src/server.ts @@ -0,0 +1,10 @@ +import express from 'express'; +import { errorHandler } from './middleware/error'; + +const app = express(); + +app.use(express.json()); + +app.use(errorHandler); + +export default app;