Ich bin neu bei Node.js und MongoDB, aber ich habe es geschafft, einige Teile aus SO und die Dokumentation für Mongo zusammen zu stellen.Node.js und MongoDB, das DB-Objekt wiederverwendend
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");
}
});
Welche sieht gut aus, wenn ich nur die DB in einer Funktion an einem Ort verwenden müssen. Das Suchen und Lesen von SO hat mir gezeigt, dass ich nicht jedes Mal eine neue Verbindung öffnen sollte, sondern einen Pool verwenden und das Datenbankobjekt, das ich zum ersten Mal erhalte, wiederverwenden kann. Diese Antwort gibt es reichlich in SO, aber ich bin mir nicht sicher, wie man überhaupt das DB-Objekt an sich bringt und wie man es wiederverwenden kann.
sagen, dass ich die Node.js Code oben in meinem App.js haben, und ich habe dann Differnt Routen, die verschiedene Operationen auf dem db wie laufen müssen:
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 über gehen zu setzen diese zwei Schnipsel zusammen in etwas Nützliches?
Ich fand eine ähnliche Frage in Node.js reuse MongoDB reference, aber von der Optik dieses (http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.html) sieht es aus wie ich MongoClient anstelle von db() verwenden sollte. Und ich bin mir nicht sicher, ob es auch mein Problem löst ...
Hmm, muss auf Modulen und Sachen vor dem Versuch lesen. "module.exports.init" sieht seltsam für mich aus :) Aber was Sie sagen, ist, dass der Code in "app.js" nur einmal ausgeführt werden sollte, und dann ist der Code in "randomFile.js" der, den ich benutze in meiner App.post ('/ Mitarbeiter')? Da ich das erste Mal bin, habe ich alles in einer App.js-Datei. – user2288749
Das ist richtig, die 'init' Funktion sollte nur einmal aufgerufen werden. Die 'randomFile.js' war nur ein Beispiel, um zu zeigen, dass Sie die initialisierte Datenbank von überall im Code verwenden können. Ich könnte genauso einfach in app.js verwendet werden.Sie sollten auf jeden Fall verstehen, wie Module funktionieren, wenn Sie mit Knoten arbeiten, aber sie sind wirklich nicht schwierig. –
Vielen Dank für Ihre Zeit und Mühe, ich habe es heute funktioniert! Wenn ich den Server starte, bekomme ich sofort 5 Verbindungen zur DB. Ist das schlimm? (Raten 5, da es die standardmäßig erlaubten Verbindungen sind?) Ich habe den Init-Anruf geändert und wie ich das Modul verwende, siehe http://pastebin.com/QFdZY51F – user2288749