एक Connection
बनाएं ऐप्स डेटाबेस कनेक्शन को प्रबंधित करने के लिए सिंगलटन मॉड्यूल।
MongoClient एक सिंगलटन कनेक्शन पूल प्रदान नहीं करता है इसलिए आप MongoClient.connect()
को कॉल नहीं करना चाहते हैं। आपके ऐप में बार-बार। मोंगो क्लाइंट को लपेटने के लिए एक सिंगलटन क्लास मेरे द्वारा देखे गए अधिकांश ऐप्स के लिए काम करता है।
const MongoClient = require('mongodb').MongoClient
class Connection {
static async open() {
if (this.db) return this.db
this.db = await MongoClient.connect(this.url, this.options)
return this.db
}
}
Connection.db = null
Connection.url = 'mongodb://127.0.0.1:27017/test_db'
Connection.options = {
bufferMaxEntries: 0,
reconnectTries: 5000,
useNewUrlParser: true,
useUnifiedTopology: true,
}
module.exports = { Connection }
हर जगह आपको require('./Connection')
, Connection.open()
विधि उपलब्ध होगी, जैसा कि Connection.db
होगा संपत्ति अगर इसे शुरू किया गया है।
const router = require('express').Router()
const { Connection } = require('../lib/Connection.js')
// This should go in the app/server setup, and waited for.
Connection.open()
router.get('/files', async (req, res) => {
try {
const files = await Connection.db.collection('files').find({})
res.json({ files })
}
catch (error) {
res.status(500).json({ error })
}
})
module.exports = router