MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

partage de la connexion db sur toute l'application dans mangouste

Option 1 :Utiliser un objet partagé

Mon code de modèle ressemble, mais au lieu d'exiger les modules à plusieurs reprises, je les demande juste une fois lorsque l'application démarre, puis j'attribue les résultats à un objet partagé. Par exemple, si vous utilisez une application express, vous pouvez simplement quelque chose comme app.locals.models.User = require('./models/user'); . Ensuite, tout ce qui a accès à l'app peut voir vos modèles sans avoir besoin d'un besoin.

Option 2 : Assurez-vous d'une seule modification dans la fonction exportée

Vous pouvez définir votre module utilisateur comme suit :

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

Lorsque vous lancez votre application il vous suffit de :require('./models/user')(db) . Les demandes ultérieures d'autres modules de votre application peuvent supprimer le db paramètre, comme User ne sera défini qu'une seule fois.