mongodb.js 567 B

1234567891011121314151617181920212223242526272829
  1. const Settings = require('@overleaf/settings')
  2. const { MongoClient, ObjectId } = require('mongodb')
  3. const clientPromise = MongoClient.connect(
  4. Settings.mongo.url,
  5. Settings.mongo.options
  6. )
  7. let setupDbPromise
  8. async function waitForDb() {
  9. if (!setupDbPromise) {
  10. setupDbPromise = setupDb()
  11. }
  12. await setupDbPromise
  13. }
  14. const db = {}
  15. async function setupDb() {
  16. const internalDb = (await clientPromise).db()
  17. db.messages = internalDb.collection('messages')
  18. db.rooms = internalDb.collection('rooms')
  19. }
  20. module.exports = {
  21. db,
  22. ObjectId,
  23. waitForDb,
  24. }