2012-03-14 13 views
5

एक्सप्रेस के लिए रूटिंग मॉड्यूल में एक्सप्रेस के लिए पर्यावरण को पास करना चाहता हूं। मैं यह जानना चाहता हूं कि एक्सप्रेस विकास या उत्पादन मोड में चल रहा है या नहीं। ऐसा करने के लिए, मुझे लगता है कि मुझे किसी भी तरह से रूटिंग मॉड्यूल में app.settings.env पास करने की आवश्यकता है।एक्सप्रेस मार्गों के लिए एक नोड जेएस मॉड्यूल के लिए मान पास करना

मेरा रूटिंग मॉड्यूल प्रत्येक मार्ग के लिए एक फ़ंक्शन निर्यात करता है। तो:

app.get('/search', web.search); 

पिछले एक stackoverflow पद के आधार पर, मैं इस कोशिश की है:

var web = require('./web')({'mode': app.settings.env}); 

लेकिन नोड एक प्रकार की त्रुटि फेंकता है (वस्तु एक समारोह नहीं है)।

मैं नोड और एक्सप्रेस में नया हूं। क्या मैं एक एक्सप्रेस मार्ग के लिए एक मूल्य पास कर सकता हूं और यदि हां, तो कैसे?

var web = require('./web')({'mode': app.settings.env}); 

आप समारोह के रूप में वस्तु (module.exports) का उपयोग करने की कोशिश को फोन करके

module.exports.search = function(req, res, next) { 
    // ... 
}; 

module.exports.somethingOther = function(req, res, next) { 
    // ... 
}; 

तो:

उत्तर

8

आप web.js तो इस तरह दिखता है। यहां त्रुटि टाइप करें।

आपको मॉड्यूल.एक्सपोर्ट को पैरामीटर को पास करने के लिए फ़ंक्शन में कनवर्ट करने की आवश्यकता है। इस तरह:

module.exports = function (env) { 
    return { 
     // env available here 
     search: function(req, res, next) { 
      // ... 
     }, 

     somethingOther: function(req, res, next) { 
      // ... 
     }; 
    }; 
}; 
+0

धन्यवाद। यह काम। –

+0

इस समाधान ने मेरा दिन बचाया –

संबंधित मुद्दे