मैं कुछ परीक्षणों से गुज़रा और मुझे लगता है कि इस विषय पर कुछ प्रकाश डाला जा सकता है ...
app.js
:
var ...
, routes = require('./routes')
...;
...
console.log('@routes', routes);
...
के संस्करण /routes/index.js
:
exports = function fn(){}; // outputs "@routes {}"
exports.fn = function fn(){}; // outputs "@routes { fn: [Function: fn] }"
module.exports = function fn(){}; // outputs "@routes function fn(){}"
module.exports.fn = function fn(){}; // outputs "@routes { fn: [Function: fn] }"
मैंने नई फाइलें भी जोड़ीं:
./routes/index.js
:
module.exports = require('./not-index.js');
module.exports = require('./user.js');
./routes/not-index.js
:
exports = function fn(){};
./routes/user.js
:
exports = function user(){};
हमें आउटपुट "@routes {}" मिलता है
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.user = require('./user.js');
./routes/not-index.js
:
exports = function fn(){};
./routes/user.js
:
exports = function user(){};
हमें आउटपुट "@routes {fn: {}, उपयोगकर्ता: {}}" मिलता है
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.user = require('./user.js');
./routes/not-index.js
:
exports.fn = function fn(){};
./routes/user.js
:
exports.user = function user(){};
हमें आउटपुट "@routes {उपयोगकर्ता: [समारोह: उपयोगकर्ता]}" मिलता है, यदि हम बदलते user.js
हैं { ThisLoadedLast: [Function: ThisLoadedLast] }
, तो हम आउटपुट प्राप्त करते हैं "@routes {ThisLoadedLast: [समारोह: ThisLoadedLast]}"।
लेकिन अगर हम संशोधित ./routes/index.js
...
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.ThisLoadedLast = require('./user.js');
./routes/not-index.js
:
exports.fn = function fn(){};
./routes/user.js
:
exports.ThisLoadedLast = function ThisLoadedLast(){};
... हमें "@routes {fn: {fn: [फंक्शन: fn]}}, थेलोडेडस्टैस्ट: {ThisLoadedLast: [फंक्शन: ThisLoadedLast]}}"
इसलिए मेरा सुझाव है कि हमेशा module.exports
अपने मॉड्यूल परिभाषाओं में उपयोग करें।
मुझे पूरी तरह से समझ नहीं आ रहा है कि नोड के साथ आंतरिक रूप से क्या हो रहा है, लेकिन कृपया टिप्पणी करें कि क्या आप इस बारे में अधिक समझ बना सकते हैं क्योंकि मुझे यकीन है कि यह मदद करता है।
- हैप्पी कोडिंग