MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Teilen der DB-Verbindung über die gesamte App in Mungo

Option 1:Verwenden Sie ein gemeinsames Objekt

Mein Modellcode sieht ähnlich aus, aber anstatt die Module wiederholt anzufordern, benötige ich sie nur einmal, wenn die Anwendung startet, und weise die Ergebnisse dann einem gemeinsam genutzten Objekt zu. Wenn Sie beispielsweise eine Express-App verwenden, könnten Sie einfach so etwas wie app.locals.models.User = require('./models/user'); verwenden . Dann alles mit Zugriff auf die app kann Ihre Modelle sehen, ohne dass eine Anforderung erforderlich ist.

Option 2:Stellen Sie eine einzelne Änderung in der exportierten Funktion sicher

Sie können Ihr Benutzermodul wie folgt definieren:

var mongoose = require('mongoose');

var userSchema = new mongoose.Schema({name: String});

var User = null;

module.exports = function(db) {
  if (db && User === null) {
    User = db.model('User', userSchema);
  }
  return User;
};

Wenn Sie Ihre Anwendung starten, brauchen Sie nur:require('./models/user')(db) . Nachfolgende Anforderungen durch andere Module in Ihrer Anwendung können die db löschen Parameter, als User wird nur einmal gesetzt.