mongodb.js 523 B

12345678910111213141516171819202122232425262728
  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.contacts = internalDb.collection('contacts')
  18. }
  19. module.exports = {
  20. db,
  21. ObjectId,
  22. waitForDb,
  23. }