sql >> Database teknologi >  >> NoSQL >> MongoDB

deling af db-forbindelse på tværs af hele appen i mongoose

Mulighed 1:Brug et delt objekt

Min modelkode ligner, men i stedet for gentagne gange at kræve modulerne kræver jeg dem bare én gang, når applikationen starter, og tildeler derefter resultaterne til et delt objekt. For eksempel, hvis du bruger en ekspres-app, kan du bare så noget som app.locals.models.User = require('./models/user'); . Derefter alt med adgang til app kan se dine modeller uden behov.

Mulighed 2:Sørg for en enkelt ændring i den eksporterede funktion

Du kan definere dit brugermodul sådan:

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 starter din applikation, skal du blot:require('./models/user')(db) . Efterfølgende krav fra andre moduler i din applikation kan droppe db paramater, som User vil kun blive indstillet én gang.




  1. find() og findOne() metoderne i MongoDB viser forskellige resultater

  2. Mongodb sorterer indre array

  3. Brug af Redis som mellemliggende cache til REST API

  4. MongoDB $ og operatørforespørgsel i PHP