मेरे पास एक सभ्य आकार प्रोजेक्ट है और मुझे थोड़ा पुनर्गठन करने की आवश्यकता है।फ़ोल्डर में स्टोर मॉडल, index.js का उपयोग करने के लिए सभी
मैं नोड के लिए अपने ओआरएम के रूप में मोंगोज़ का उपयोग कर रहा हूं। मैं अपने सभी mongoose मॉडल 'मॉडल' नामक फ़ोल्डर में रखना चाहता हूं। मैंने पढ़ा है कि जब मैं ऐसा करता हूं तो मैं मॉडल फ़ोल्डर में index.js फ़ाइल डाल सकता हूं जो कि सभी मॉडलों में खींच लेगा और उन्हें स्टोर करेगा।
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
...
मैं कर रहा हूँ वास्तव में क्या मैं index.js में करने के लिए मेरे सभी मॉडल
index.js वापस जाने के लिए (यह है कि मैं क्या करने की कोशिश की है की जरूरत है पर अटक , यहां तक कि बंद नहीं)
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;
इसके अलावा, मैं app.js से नेवला में पास करना चाहिए के बाद से मैं मोंगो से कनेक्ट करने के वहाँ की जरूरत? अर्थात। मैं इसे index.js में फिर से आवश्यकता कर सकता हूं लेकिन मुझे यकीन नहीं है कि अलग-अलग फाइलों में एक ही मॉड्यूल की आवश्यकता है या नहीं।
संपादित करें: (यहाँ अपने मॉडल की पर है)
क्षमा करें कि मैं 'एक्सेसर' प्रकार कार्यों अपने मॉडल कक्षाओं में जोड़ने उल्लेख करना भूल गया। अर्थात। मैं प्रत्येक मॉडल के लिए एक सार्वजनिक इंटरफ़ेस प्रस्तुत करना चाहता हूं।
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
}
}
के लिए धन्यवाद स्पष्टीकरण, यह समझ में आता है। एक और बात मैंने अपना मॉडल कोड जोड़ा। मुझे यह पसंद है कि यह मेरे उपयोगकर्ता मॉडल में 'सार्वजनिक' इंटरफ़ेस प्रदान करता है। इसका उपयोग करने के लिए हालांकि मुझे मॉडल को कहीं सेव करने की आवश्यकता होगी जैसे कि मैं इसे बाद में एक्सेस कर सकूं? कल्पना करें कि मेरे मॉडल/index.js export.modules में कुछ वापस कर सकते हैं जैसे कि मेरे पास अपने सभी कस्टम मॉडल तक पहुंच हो सकती है? – lostintranslation
@forumuser मुझे लगता है कि आपको इसके बजाय स्थिर कन्स्ट्रक्टर विधियों का उपयोग करना चाहिए। http://mongoosejs.com/docs/guide.html (स्टेटिक्स) – luin
मैं उपयोगकर्ताओं को मोंगोस स्थिर कार्यों का उपयोग करने से रोकने की कोशिश कर रहा था जैसे कि मोंगोज़ उपयोग उपयोगकर्ता से किया गया था।आईई मोंगोस स्थिर रचनाकारों का उपयोग नहीं करता है, केवल लौटाए गए सार्वजनिक एपीआई का उपयोग करें। यह आसान बनाता है अगर मैं mongodb से postgres में स्थानांतरित करता हूं क्योंकि मेरे सभी मार्ग अभी भी वही सार्वजनिक विधियों को कॉल कर सकते हैं जिन्हें मैंने परिभाषित किया है, मुझे बस विधियों की गड़बड़ी बदलने की जरूरत है। – lostintranslation