Bläddra i källkod

PROD-1221: Improve server starting/stopping error handling

Blake Schneider 5 år sedan
förälder
incheckning
37921dcc08
2 ändrade filer med 23 tillägg och 11 borttagningar
  1. 8 3
      index.js
  2. 15 8
      server/index.js

+ 8 - 3
index.js

@@ -6,7 +6,12 @@ const { sequelize } = require('./db');
 logger.info('Starting OADR VTN...');
 
 (async () => {
-  await sequelize.sync();
-  await require('./server').start();
-  logger.info('OADR VTN up and running');
+  try {
+    await sequelize.sync();
+    await require('./server').start();
+    logger.info('OADR VTN up and running');
+  } catch (e) {
+    logger.fatal('Error initializing OADR VTN', e);
+    process.exit(1);
+  }
 })();

+ 15 - 8
server/index.js

@@ -15,23 +15,30 @@ let server;
 function start() {
   return new Promise((resolve, reject) => {
     if (server) {
-      resolve(app);
+      reject('Server has already been started');
       return;
     }
-    server = app
-      .listen(port, () => {
+    try {
+      server = app.listen(port, () => {
         logger.info(`Server running on port ${port}...`);
         resolve(app);
-      })
-      .on('error', reject);
+      });
+    } catch (e) {
+      reject(e);
+    }
   });
 }
 
 function stop() {
-  if (server) {
+  return new Promise((resolve, reject) => {
+    if (!server) {
+      reject('Server was not started');
+      return;
+    }
     server.close();
-  }
-  server = undefined;
+    server = undefined;
+    resolve();
+  });
 }
 
 module.exports = {