From 6a2de79d8023b3b8c040cd685b394c20dd5152e1 Mon Sep 17 00:00:00 2001 From: Senthil Raja R Date: Wed, 17 Jun 2026 22:46:08 +0530 Subject: [PATCH] Add global Express error handler and graceful shutdown to API Gateway --- services/api-gateway-node/index.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/services/api-gateway-node/index.js b/services/api-gateway-node/index.js index 4f11bb2..6ebcf92 100644 --- a/services/api-gateway-node/index.js +++ b/services/api-gateway-node/index.js @@ -816,6 +816,23 @@ app.get('/health', (req, res) => { }); app.get('/metrics', async (req, res) => { - res.set('Content-Type', promClient.register.contentType); - res.end(await promClient.register.metrics()); + res.set('Content-Type', promClient.register.contentType); + res.end(await promClient.register.metrics()); +}); + +function globalErrorHandler(err, req, res, _next) { + console.error('Unhandled error:', err.message, err.stack); + const status = err.status || err.statusCode || 500; + res.status(status).json({ error: 'Internal server error' }); +} +app.use(globalErrorHandler); + +process.on('SIGTERM', () => { + console.log('SIGTERM received, shutting down gracefully...'); + server.close(() => process.exit(0)); +}); + +process.on('SIGINT', () => { + console.log('SIGINT received, shutting down gracefully...'); + server.close(() => process.exit(0)); });