From 959b5853a6b1e72fc6eda67b1e1c34b467f7302b Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Wed, 19 Aug 2020 13:06:22 +0100 Subject: [PATCH] [misc] complete the connection setup before starting the http server --- services/chat/app.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/services/chat/app.js b/services/chat/app.js index bb1238dd9c..b133723f08 100644 --- a/services/chat/app.js +++ b/services/chat/app.js @@ -8,6 +8,7 @@ const logger = require('logger-sharelatex') const settings = require('settings-sharelatex') +const mongodb = require('./app/js/mongodb') const Server = require('./app/js/server') if (!module.parent) { @@ -22,12 +23,20 @@ if (!module.parent) { settings.internal != null ? settings.internal.chat : undefined, (x1) => x1.host ) || 'localhost' - Server.server.listen(port, host, function (error) { - if (error != null) { - throw error - } - return logger.info(`Chat starting up, listening on ${host}:${port}`) - }) + mongodb.clientConnecting + .then(() => { + Server.server.listen(port, host, function (err) { + if (err) { + logger.fatal({ err }, `Cannot bind to ${host}:${port}. Exiting.`) + process.exit(1) + } + return logger.info(`Chat starting up, listening on ${host}:${port}`) + }) + }) + .catch((err) => { + logger.fatal({ err }, 'Cannot connect to mongo. Exiting.') + process.exit(1) + }) } module.exports = Server.server