2016-08-11 3 views
2

Also ich bin sehr neu zu mongodb und ich möchte es in meiner Anwendung verwenden. Nun ich HATE redundanten Code, aber lesen, wie mongodb mit node.js zu verwenden, es scheint, dass es ein Muster gibt, wo Sie immer verbinden müssen, bevor Sie eine CRUD-Operation.Benötigt mongodb eine Verbindung bei jeder Operation

Beispiel aus der offiziellen Dokumentation:

MongoClient.connect(url, function(err, db) { 
    assert.equal(null, err); 
    insertDocument(db, function() { 
     db.close(); 
    }); 
}); 

Meine Frage ist. Ist es möglich, eine Middleware zu erstellen, die die Verbindung offen hält, so dass Sie nur insertDocument anrufen müssen (im obigen Beispiel)?

+0

besser Sie verwenden mongoose.connect() und behalten Sie es in der Konfigurationsdatei. und Sie können überall verwenden – chirag

Antwort

3

Ja natürlich, nur halten die db Variable um, bis es nicht mehr nicht brauchen - dann close() nennen

var mdb; 
MongoClient.connect(url, function(err, db) { 
    assert.equal(null, err); 
    mdb = db; 
    insertDocument(mdb, function() { 
     // ... 
    }); 
}); 

// do other stuff with mdb 
1

Sie können auch in aussehen mit Mongoose wie Sie Middleware genannt.

Die Verbindung wird nur einmal (im globalen Gültigkeitsbereich) geöffnet und Sie können sie dann in der gesamten App verwenden.

Verwandte Themen