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.