From dd056cc67a171d7ebc14a5cefd0a8c5f147c21e5 Mon Sep 17 00:00:00 2001 From: davin111 Date: Wed, 2 Aug 2023 22:05:16 +0900 Subject: [PATCH] health check db connection --- src/api/routes/RootRouter.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/api/routes/RootRouter.ts b/src/api/routes/RootRouter.ts index 47af5ca8..31cd5f88 100644 --- a/src/api/routes/RootRouter.ts +++ b/src/api/routes/RootRouter.ts @@ -2,10 +2,25 @@ import ExpressPromiseRouter from 'express-promise-router'; import MonitorRouter = require('./MonitorRouter'); import StaticPageRouter = require('./StaticPageRouter'); import ApiRouter = require('./ApiRouter'); +import mongoose = require('mongoose'); let router = ExpressPromiseRouter(); -router.get('/health-check', (req, res) => res.sendStatus(200)); +router.get('/health-check', (req, res) => { + if (mongoose.connection.readyState !== 1) { + res.status(500).json({ message: 'MongoDB connection failed' }); + return; + } + + mongoose.connection.db.admin().ping((err, result) => { + if (err) { + res.status(500).json({ message: 'MongoDB connection failed' }); + return; + } + res.status(200).json({ message: 'ok' }); + }); +}); + router.use('/monitor', MonitorRouter); router.use(function(req, res) {