sql >> Database >  >> NoSQL >> MongoDB

db-verbinding delen over de hele app in mangoest

Optie 1:Gebruik een gedeeld object

Mijn modelcode ziet er hetzelfde uit, maar in plaats van de modules herhaaldelijk te vereisen, heb ik ze slechts één keer nodig wanneer de toepassing start en wijs de resultaten vervolgens toe aan een gedeeld object. Als u bijvoorbeeld een expres-app gebruikt, kunt u zoiets als app.locals.models.User = require('./models/user'); . Dan alles met toegang tot de app kan uw modellen zien zonder een vereiste.

Optie 2:Zorg voor een enkele wijziging in de geëxporteerde functie

U kunt uw gebruikersmodule als volgt definiëren:

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

Wanneer u uw applicatie start, hoeft u alleen maar:require('./models/user')(db) . Daaropvolgende vereisten door andere modules in uw toepassing kunnen de db . laten vallen paramater, als User wordt slechts één keer ingesteld.




  1. Mongoose maakt verbinding voor multi-tenancy-ondersteuning in node.js

  2. MongoDB-relaties:insluiten of verwijzen?

  3. DIY Cloud Database op Amazon Web Services - Nieuwe whitepaper

  4. MongoDB GeoNear-resultaten sorteren op iets anders dan afstand?