sql >> Database >  >> NoSQL >> MongoDB

gebruik globale variabele om db te delen tussen module

Ik voeg meestal een bestand met projecthulpprogramma's toe dat een aantal van deze dingen bevat, gewoon om het gemakkelijk te maken. Het functioneert als een pseudo-global, maar zonder veel van de gebruikelijke problemen die globals met zich meebrengen.

Bijvoorbeeld,

projectUtils.js

module.exports = {

  initialize: function(next){
    // initialization actions, there can be many of these
    this.initializeDB(next);
  },

  initializeDb: function(next){
    mongoClient.open(function(err, mongoClient) {
      if(err) return next(err);
      module.exports.db = mongoClient.db(DB);
      next();
    });
  }
}

app.js

var projectUtils = require('projectUtils');

// (snip)
projectUtils.initialize(function(err) {
  if(err) throw err; // bad DB initialization
  // After this point and inside any of your routes,
  // projectUtils.db is available for use.
  app.listen(port);
}

Door een asynchrone initialize()-functie te gebruiken, kunt u er zeker van zijn dat alle databaseverbindingen, bestands-I/O, enz., zijn voltooid voordat de server wordt opgestart.



  1. Inleiding tot gedistribueerde cache in Hadoop

  2. mongodb verzamel ingesloten documentwaarden

  3. Subdocumentarray retourneren via Meteor / Mongo

  4. MongoDB vindt documenten waarin alle array-elementen een bepaalde waarde hebben