आप exports
को नहीं लिख सकते हैं आपके द्वारा फ़ाइल छोड़ने के बाद। आपको ब्लॉक करना होगा। अवरुद्ध होने से बचने के लिए मैं संसाधनों की आलसी लोडिंग का उपयोग करूंगा।
var carCol;
var carEmitter = new require("events").EventEmitter;
exports.getCars = function(callback) {
// if no car collection then bind to event
if (carCol === undefined) {
carEmitter.on("cars-ready", function() {
callback(carCol);
});
} else {
// we have cars, send them back
callback(carCol);
}
}
db.collection("cars", function(err, col) {
// store cars
carCol = col;
// tell waiters that we have cars.
carEmitter.emit("cars-ready");
});
आलसी लोडिंग का अनुकरण करने के लिए ईवेंट उत्सर्जक का उपयोग करें। आप LazyLoadedCollection
. का सामान्यीकरण करना चाह सकते हैं क्लास/ऑब्जेक्ट कोड को साफ-सुथरा/अधिक सूखा बनाने के लिए।