विकल्प 1:साझा किए गए ऑब्जेक्ट का उपयोग करें
मेरा मॉडल कोड समान दिखता है, लेकिन बार-बार मॉड्यूल की आवश्यकता के बजाय मुझे केवल एक बार उनकी आवश्यकता होती है जब एप्लिकेशन शुरू होता है और फिर परिणामों को किसी साझा ऑब्जेक्ट को असाइन करता है। उदाहरण के लिए यदि आप एक एक्सप्रेस ऐप का उपयोग कर रहे हैं तो आप कुछ ऐसा कर सकते हैं जैसे app.locals.models.User = require('./models/user');
. फिर app
. तक पहुंच के साथ कुछ भी आवश्यकता के बिना अपने मॉडल देख सकते हैं।
विकल्प 2:निर्यात किए गए फ़ंक्शन में एकल संशोधन सुनिश्चित करें
आप अपने उपयोगकर्ता मॉड्यूल को इस प्रकार परिभाषित कर सकते हैं:
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;
};
जब आप अपना आवेदन शुरू करते हैं तो आपको बस यह करना होगा:require('./models/user')(db)
. बाद में आपके आवेदन में अन्य मॉड्यूल की आवश्यकता होती है db
पैरामीटर, User
. के रूप में केवल एक बार सेट किया जाएगा।