sql >> Databasteknik >  >> NoSQL >> MongoDB

delar db-anslutning över hela appen i mongoose

Alternativ 1:Använd ett delat objekt

Min modellkod ser likadan ut, men istället för att upprepade gånger kräva modulerna behöver jag dem bara en gång när applikationen startar och sedan tilldelar resultaten till ett delat objekt. Om du till exempel använder en expressapp kan du bara göra något som app.locals.models.User = require('./models/user'); . Sedan allt med tillgång till app kan se dina modeller utan behov.

Alternativ 2:Säkerställ en enda ändring i den exporterade funktionen

Du kan definiera din användarmodul så här:

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;
};

När du startar din applikation behöver du bara:require('./models/user')(db) . Efterföljande krav från andra moduler i din applikation kan ta bort db paramater, som User kommer bara att ställas in en gång.




  1. Hur gör jag en count() i MongoDBs pymongo?

  2. Gruppera och räkna över ett start- och slutintervall

  3. MongoDB Java kapslade dokument är inte tillgängliga med hjälp av punkter i nyckelnamn

  4. StackExchange.Redis - LockTake / LockRelease-användning