sql >> Database >  >> NoSQL >> MongoDB

Beste manier om verbinding te maken met MongoDB met Node.js

U kunt een algemene variabele . gebruiken om de verbinding vast te houden (bijv. db ), bijvoorbeeld:

var db = null // global variable to hold the connection

MongoClient.connect('mongodb://localhost:27017/', function(err, client) {
    if(err) { console.error(err) }
    db = client.db('test') // once connected, assign the connection to the global variable
})

app.get('/', function(req, res) {
    db.collection('test').find({}).toArray(function(err, docs) {
        if(err) { console.error(err) }
        res.send(JSON.stringify(docs))
    })
})

Of, als je wilt, kun je ook het Promise-object . gebruiken dat wordt geretourneerd door MongoClient als het wordt aangeroepen zonder een callback-argument:

var conn = MongoClient.connect('mongodb://localhost:27017/') // returns a Promise

app.get('/', function(req, res) {
    conn.then(client=> client.db('test').collection('test').find({}).toArray(function(err, docs) {
        if(err) { console.error(err) }
        res.send(JSON.stringify(docs))
    }))
})

Houd er rekening mee dat ik de functiedefinitie van de ES6-fatpijl in het tweede voorbeeld heb gebruikt.

Je hebt helemaal gelijk dat je MongoClient . niet moet bellen elke keer. Door een globale variabele of Promises te gebruiken, kan het MongoDB node.js-stuurprogramma een verbindingspool maken, waarmee ten minste twee goede dingen worden bereikt:

  • Verbindingen worden hergebruikt in een pool, dus er is geen meervoudig duur installatie-/afbraakproces voor de levensduur van uw toepassing. U sluit één keer aan en laat de chauffeur de rest voor u doen.
  • U kunt de hoeveelheid verbinding die uw toepassing met de database maakt, bepalen door de grootte van de verbindingspool te beperken.

24-08-2018 bewerken :De MongoClient.connect() methode in node.js driver versie 3.0 en nieuwer retourneert een client-object in plaats van een database-object. De bovenstaande voorbeelden zijn aangepast om ze up-to-date te houden met de nieuwste node.js-stuurprogrammaversie.



  1. 5 manieren om de maand van een datum te krijgen in MongoDB

  2. MongoDB-documenten en -verzamelingen visueel beheren

  3. Aan de slag met PHP en MongoDB

  4. Wat is een schone manier om mongod te stoppen op Mac OS X?