Jelajahi Sumber

Merge pull request #3568 from overleaf/ae-mongo-promises

Wait for mongoose to connect before starting the server

GitOrigin-RevId: 4b470369b070f17b32e47106fada7cb4adf2a12c
Alf Eaton 5 tahun lalu
induk
melakukan
181f9f88fb
2 mengubah file dengan 3 tambahan dan 2 penghapusan
  1. 2 2
      services/web/app.js
  2. 1 0
      services/web/app/src/infrastructure/Mongoose.js

+ 2 - 2
services/web/app.js

@@ -25,6 +25,7 @@ if ((Settings.sentry != null ? Settings.sentry.dsn : undefined) != null) {
 metrics.memory.monitor(logger)
 metrics.memory.monitor(logger)
 const Server = require('./app/src/infrastructure/Server')
 const Server = require('./app/src/infrastructure/Server')
 const mongodb = require('./app/src/infrastructure/mongodb')
 const mongodb = require('./app/src/infrastructure/mongodb')
+const mongoose = require('./app/src/infrastructure/Mongoose')
 const Queues = require('./app/src/infrastructure/Queues')
 const Queues = require('./app/src/infrastructure/Queues')
 
 
 Queues.initialize()
 Queues.initialize()
@@ -44,8 +45,7 @@ if (!module.parent) {
   if (!process.env.WEB_API_USER || !process.env.WEB_API_PASSWORD) {
   if (!process.env.WEB_API_USER || !process.env.WEB_API_PASSWORD) {
     throw new Error('No API user and password provided')
     throw new Error('No API user and password provided')
   }
   }
-  mongodb
-    .waitForDb()
+  Promise.all([mongodb.waitForDb(), mongoose.connectionPromise])
     .then(() => {
     .then(() => {
       Server.server.listen(port, host, function() {
       Server.server.listen(port, host, function() {
         logger.info(`web starting up, listening on ${host}:${port}`)
         logger.info(`web starting up, listening on ${host}:${port}`)

+ 1 - 0
services/web/app/src/infrastructure/Mongoose.js

@@ -56,5 +56,6 @@ async function getNativeDb() {
 }
 }
 
 
 mongoose.getNativeDb = getNativeDb
 mongoose.getNativeDb = getNativeDb
+mongoose.connectionPromise = connectionPromise
 
 
 module.exports = mongoose
 module.exports = mongoose