मैं NodeJS में अपने प्रोजेक्ट के निर्माण के लिए शुरू कर और एक ही मॉड्यूल की आवश्यकता होती है मॉड्यूल के लिएक्या नोडजेएस पहले ही मॉड्यूल लोड कर चुका है और इसके मूल्यों को साझा करता है?
- करता NodeJS पहले से ही भरी हुई पुनः उपयोग मॉड्यूल सोच रहा था?
- क्या मॉड्यूल एक ही "राज्य" मॉड्यूल में रखता है जिसके लिए उन्हें आवश्यकता होती है?
- यदि कोई या दोनों होता है तो कैच कैसा होता है? मैं चेहरे में घूम रहा हूं लूप और
setTimeout
और async कोड जैसा कोई समस्या है?
वर्तमान में मैं 4 फ़ाइलों
common.js
var i = 0; function add(v){i += v;} function view(){console.log(i);} module.exports = { add : add, view : view }
a.js
औरb.js
exports.common = require('./common.js');
0 के साथ परीक्षण किया है
server.js
var a = require('./a.js'), b = require('./b.js'); function start(){ http.createServer(function (req, res) { a.common.add(2); a.common.view(); b.common.add(4); b.common.view(); a.common.view(); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(config.port, config.address || '127.0.0.1'); console.log('Server running'); }
परिणाम मुझे एक विचारोत्तेजक नतीजा यह है कि यह करता है देता है:
2 - view() via a.js on favicon request
6 - view() via b.js on favicon request
6 - view() via a.js on favicon request
8 - view() via a.js
12 - view() via b.js
12 - view() via a.js
ऐसा लगता है कि यह मॉड्यूल यह दो अलग-अलग के लिए आवश्यक है, भले ही साझा करने के लिए प्रतीत होता है मॉड्यूल, और यहां तक कि मॉड्यूल और पूरे अनुरोधों में राज्य रखता है
'foo' और' bar 'कहां से आते हैं? – Amberlamps
@Amberlamps संपादित। मैंने अपने कोड में 'foo' और' bar' का उपयोग किया। – Joseph
हां, भारित मॉड्यूल आर कैश किए गए, उनके राज्य को। –