मैं node.js. में एक वेब ऐप लिख रहा हूं। अब सर्वर पर हर प्रसंस्करण हमेशा एक सत्र के संदर्भ में होता है जिसे अनुरोध को सर्वर पर हिट करते समय पहले चरण में पुनर्प्राप्त या बनाया जाता है। इसके बाद निष्पादन उनके भीतर कई मॉड्यूल और कॉलबैक के माध्यम से बहता है। मैं जिस प्रोग्रामिंग पैटर्न के साथ संघर्ष कर रहा हूं वह प्रोग्रामिंग पैटर्न बनाने में है ताकि कोड में किसी भी बिंदु पर सत्र ऑब्जेक्ट प्रोग्रामर के बिना उपलब्ध हो, जिसे प्रत्येक फंक्शन कॉल में तर्क के रूप में पास करने की आवश्यकता होती है।निष्पादन संदर्भ प्राप्त करने के लिए नोड.जेएस प्रोग्रामिंग पैटर्न
यदि सभी कोड एक ही फाइल में थे तो मुझे बंद हो सकता था, लेकिन यदि अन्य फाइलों में अन्य मॉड्यूल में फ़ंक्शन कॉल हैं तो मैं प्रोग्राम कैसे कर सकता हूं ताकि सत्र ऑब्जेक्ट इसे गुजरने के बिना कॉल किए गए फ़ंक्शन में उपलब्ध हो एक तर्क के रूप में। मुझे लगता है कि दो फाइलों में दो कार्यों के बीच कुछ लिंक होना चाहिए, लेकिन यह व्यवस्था कैसे करें जहां मैं फंस रहा हूं।
आम तौर पर मैं कहना चाहता हूं कि हमेशा एक निष्पादन संदर्भ होता है जो एक सत्र या नेटवर्क अनुरोध हो सकता है जिसका प्रसंस्करण कई फाइलों में फैलता है और निष्पादन संदर्भ वस्तु सभी बिंदुओं पर उपलब्ध कराई जानी चाहिए। वास्तव में कई उपयोग अनुरोध हो सकते हैं जैसे प्रत्येक नेटवर्क अनुरोध के लिए एक लॉग ऑब्जेक्ट या प्रति सत्र एक लॉग ऑब्जेक्ट। और इस काम को करने के लिए आवश्यक नलसाजी को प्रोग्राम प्रोग्रामर के बारे में परेशान किए बिना किनारे पर फिट होना चाहिए। वह सिर्फ जानता है कि निष्पादन संदर्भ सभी जगहों पर उपलब्ध है।
मुझे लगता है कि इसे हर किसी के सामने काफी आम समस्या का सामना करना चाहिए, तो कृपया मुझे कुछ विचार दें।
के बाद जब से तुम एक्सप्रेस का उपयोग कर रहे हैं समस्या
MainServer.js
app = require('express').createServer();
app_module1 = require('AppModule1');
var session = get_session();
app.get('/my/page', app_module1.func1);
AppModule1.js
app_module2 = require('AppModule2');
exports.func1 = function(req,res){
// I want to know which the session context this code is running for
app_module2.func2(req,res);
}
AppModule2.js
exports.func2 = function(req,res){
// I want to know where the session context in which this code is running
}
आप ऐसा करने के लिए एक तरह से पता लगा है, तो अपने ही सवाल का जवाब दें। –