Stocker des modèles dans un dossier, utilisez index.js pour les exiger tous

J'ai une taille décente projet et j'ai besoin de faire un peu de restructuration.

Je suis à l'aide de la mangouste comme mon ORM pour le nœud. Je voudrais mettre toutes mes mangouste modèles dans un dossier appelé "modèles". J'ai lu que quand je fais ce que je peut mettre un index.js fichier dans le dossier de modèles tels que est va tirer dans tous les modèles et de les stocker.

app.js:

...
var mongoose = require('mongoose');
var models = require('./models')(mongoose);

app.configure(function () {
  mongoose.connect(dbPath, function(err) {
    if (err) throw err;
  });
  ...
});

//include models in my routes so I need access
...

Je suis coincé sur exactement ce que j'ai besoin de faire dans la index.js pour le retour de tous mes modèles

index.js (c'est ce que j'ai essayé, pas même à proximité)

function Models(mongoose) {
    var Counters = require('./counters')(mongoose);
    var User = require('./user')(mongoose);
    var Token = require('./token')(mongoose);
    var Team = require('./team')(mongoose);
    var Role =  require('./role')();
    var Layer = require('./layer')(mongoose, counters);
    var Feature = require('./feature')(mongoose, counters, async);


}

module.exports = Models;

Aussi dois-je passer de la mangouste app.js depuis que j'ai besoin là-bas pour se connecter à mongo? I. E. je peux exiger de nouveau dans la index.js mais je ne sais pas si exigeant le même module dans les différents fichiers est une mauvaise pratique.

EDIT: (voici une de mes modèles)

Désolé j'ai oublié de mentionner que j'ai ajouter "accesseur" du type de fonctions dans mes classes de modèle. I. E., je voudrais présenter une interface publique pour chaque modèle.

user.js:

module.exports = function(mongoose) {

  //Creates a new Mongoose Schema object
  var Schema = mongoose.Schema; 

  //Collection to hold users
  var UserSchema = new Schema({
      username: { type: String, required: true },
      password: { type: String, required: true },
    },{ 
      versionKey: false 
    }
  );

  //Creates the Model for the User Schema
  var User = mongoose.model('User', UserSchema);

  var getUserById = function(id, callback) {
    User.findById(id, callback);
  }

  var getUserByUsername = function(username, callback) {
    var query = {username: username};
    User.findOne(query, callback);
  }


  return {
    getUserById: getUserById,
    getUserByUsername: getUserByUsername
  }
} 

source d'informationauteur lostintranslation