Node.js und MongoDB, das DB-Objekt wiederverwendend
Ich bin neu auf beiden Node.js und MongoDB, aber ich habe es geschafft, einige Teile zusammen von SO und die Dokumentation für mongo.
Mongo documentetion gibt das Beispiel:
//Retrieve
var MongoClient = require('mongodb').MongoClient;
//Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(!err) {
console.log("We are connected");
}
});
Die sieht gut, wenn ich nur die DB in einer Funktion an einer Stelle. Suchen und Lesen auf, ALSO hat mir gezeigt, dass ich nicht öffnen Sie eine neue Verbindung jedes mal, sondern eher ein pool und nutzen Sie das Datenbank-Objekt bekomme ich das erste mal. Diese Antwort ist reichlich SO, aber ich bin nicht sicher, wie sogar das DB-Objekt in den ersten Platz, und dann, wie Sie wieder zu verwenden.
Sagen, ich habe das Node.js code oben in meinem App.js und dann habe ich verschiedene Routen, die ausführen müssen, um verschiedene Operationen auf der db wie:
app.post('/employee', function(req, res){
//Put req.name in database
});
app.post('/car', function(req, res){
//Put req.car in database
});
Wie würde ich mich über diese beiden Schnipsel zusammen in etwas nützliches?
Fand ich eine ähnliche Frage in Node.js die Wiederverwendung von MongoDB Referenz , aber von den blicken von diesem ( http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html ) sieht es wie ich verwenden soll MongoClient anstatt db - (). Und ich bin nicht sicher, es löst mein problem...
InformationsquelleAutor der Frage user2288749 | 2013-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man immer schreiben, auch ein Modul initialisiert Ihre Datenbank-verbindungen und macht Sie zugänglich überall in Ihrem Programm. Zum Beispiel:
mongo.js
app.js
randomFile.js
Ich weiß, die Leute reden über pooling, aber als ich es Tat benchmarking zu bündeln mongo-verbindungen vs. eine einzelne Verbindung für alle Anfragen, die einzige Verbindung eigentlich besser abgeschnitten. Zugegeben, das war vor etwa einem Jahr, aber ich bezweifle, dass das grundsätzliche Konzept hat sich geändert. Alle requests sind asynchron, so dass es nicht wie mehrere verbindungen sind erforderlich, um gleichzeitige Anfragen.
Soweit MongoClient, ich denke, dass die neue syntax, Sie sind ermutigend. So oder so, es ist im wesentlichen eine client Objekt, das Sie möchten, zu bewahren und zugänglich zu machen, unabhängig davon, welchen Stil Sie verwenden.
InformationsquelleAutor der Antwort Bret Copeland
Vom letzten code-snippet, scheint, wie Sie, mit Express-oder ähnlichen Rahmen. Sie können express-mongo-db Verbindung innerhalb
req
Objekt. Diese middleware zwischengespeichert werden, die Verbindung für Sie auf und teilen Sie Sie mit anderen eingehenden Anfragen:InformationsquelleAutor der Antwort floatdrop