क्या एक्सप्रेस स्टैक में मिडलवेयर इंजेक्ट करने का कोई तरीका है? मेरा मतलब है कि मैं अपना ऐप.जेएस मुख्य मिडलवेयर श्रृंखला स्थापित करना चाहता हूं, और उसके बाद ऐप इंस्टेंस पास करने वाले अन्य मॉड्यूल को कॉल करना चाहता हूं और वे अधिक मिडलवेयर डालना चाहते हैं (उदाहरण के लिए एक प्रमाणीकरण मॉड्यूल जो सही जगह पर पासपोर्ट जोड़ना चाहता है)क्या आप एक नोड में मिडलवेयर डाल सकते हैं। जेएस एक्सप्रेस ऐप
उत्तर
इस app
भेज आप निश्चित रूप से अन्य मॉड्यूल के लिए अपने app
वस्तु गुजरती हैं और use
वहाँ कॉल कर सकते हैं कर सकते हैं। बेशक, मिडलवेयर फ़ंक्शन को जोड़े गए क्रम में निष्पादित किए जाते हैं, इसलिए आपको यह सुनिश्चित करने के लिए बहुत सावधानी बरतनी होगी कि आप सही क्रम में use
पर कॉल करें।
app.js
var app = express();
// ...
app.use(express.logger()); // first middleware function
var someOtherModule = require('./mod.js');
someOtherModule.init(app);
app.use(express.static()); // last middleware function)
mod.js
exports.init = function(app) {
app.use(function(req, res, next) {
});
};
जहां तक वास्तव में इंजेक्शन लगाने ढेर के बीच में एक मध्यस्थ के समारोह (के बाद आप पहले से ही कहा है app.use
मिडलवेयर कार्यों के एक सेट के साथ), ऐसा करने के लिए कोई दस्तावेज तरीका नहीं है। use
केवल स्टैक के अंत में एक फ़ंक्शन जोड़ता है।
use
वास्तव में proto.js में बंधन द्वारा आपूर्ति की है:
app.use = function(route, fn){
...
this.stack.push({ route: route, handle: fn });
return this;
};
तकनीकी तौर पर, आप अपने आप को app.stack
के साथ बेला सकता है, लेकिन मैं इस नहीं मारूंगा। आप एक अनियंत्रित कार्यान्वयन विस्तार से गड़बड़ कर रहे होंगे, जो बदलने के लिए उत्तरदायी है। दूसरे शब्दों में, यह संभव है कि पर भविष्य का अपडेट कनेक्ट या एक्सप्रेस आपके ऐप को तोड़ सकता है।
मुझे समझ में नहीं आता कि समस्या क्या है?
आप मिडलवेयर में किसी भी समारोह में जोड़ सकते हैं:
app.use(function(req,res,next){
//some munipulation with req and res
next()
})
और तुम में आप कर रहे हैं moduls
मुझे लगता है कि समस्या यह है कि 'app.use' हमेशा ढेर के अंत * करने के लिए अपने मिडलवेयर समारोह * कहते है, इसलिए मिडलवेयर पहले जोड़ा अनुरोध को पूरा कर सकते हैं इससे पहले कि आप कार्य करते हैं चलाने के लिए एक मौका हो जाता है। – josh3736
उदाहरण के लिए? इसकी आवश्यकता कब है? –
चीजों को अधिक मॉड्यूलर रखने और रखने के लिए - इसलिए मैं सब कुछ प्रमाणीकरण के साथ प्रमाणीकरण के साथ करना चाहता हूं - यह वहां के पास पासपोर्ट ऑब्जेक्ट बनाता है ताकि इसे पास करने के बजाय मैं ऐप को पास कर दूंगा और केट कि मॉड्यूल पासपोर्ट जोड़ता है। express.session के बाद प्रारंभ करें और passport.session मिडलवेयर लेकिन राउटर – MrPurpleStreak
आप app.use (एफ एन) का उपयोग कर सकते हैं या उन्हें इस तरह ढेर:
app.get('/foo', fn1, fn2, fn3);
हस्ताक्षर हमेशा एक ही हो सकता है और अगले फोन() के लिए है;
function(req, res, next) {
next();
}
- 1. नोड जेएस और एक्सप्रेस जेएस
- 2. क्या आप एक एलपीटीस्ट्रेट को बीएसटी में डाल सकते हैं?
- 3. नोड + एक्सप्रेस
- 4. नोड जेएस
- 5. आप सी में 2 आयामी सरणी कैसे डाल सकते हैं?
- 6. क्या बैकबोन और एक्सप्रेस राउटर एक एक्सप्रेस एप्लिकेशन में मिलकर काम कर सकते हैं?
- 7. एक्सप्रेस 3 त्रुटि मिडलवेयर को
- 8. एक्सप्रेस जेएस
- 9. क्या आप एक नामस्थान के अंदर एक पुस्तकालय डाल सकते हैं?
- 10. नोड जेएस
- 11. एक्सप्रेस जेएस
- 12. नोड और एक्सप्रेस
- 13. नोड जेएस
- 14. नोड + जेड + एक्सप्रेस
- 15. जावा मिडलवेयर प्रौद्योगिकियां क्या हैं
- 16. नोड जेएस सीपीयू 100%
- 17. डीबगिंग नोड/एक्सप्रेस --- आवश्यकता ('एक्सप्रेस') एक ब्रेक बनाता है
- 18. क्या आप सूची <MyObject> में स्थिति 0 पर डाल सकते हैं?
- 19. क्या आप xslt परीक्षण विशेषता में दो स्थितियां डाल सकते हैं?
- 20. क्या डोनोड प्रमाणीकरण मिडलवेयर है?
- 21. क्या आप पूर्ण स्क्रीन में वीबी एप्लीकेशन चला सकते हैं?
- 22. 403/एक्सप्रेस 3/नोड
- 23. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 24. क्लाइंट में नोड/एक्सप्रेस में स्ट्रीम फ़ाइलें
- 25. क्या आप एक कक्षा में दो कक्षाएं बढ़ा सकते हैं?
- 26. क्या आप सिल्वरलाइट में एक संपूर्ण एप्लिकेशन बना सकते हैं?
- 27. क्या आप फंक्शन तर्कों में एक सरणी लगा सकते हैं?
- 28. क्या आप एफ # में एक ऑपरेटर (***) परिभाषित कर सकते हैं?
- 29. क्या आप "लंबे प्रेस पावर बटन" मेनू में ऐप पंजीकृत कर सकते हैं?
- 30. नोड जेएस शैल एप्लिकेशन
के साथ सभी जोड़ें धन्यवाद - मुझे नहीं लगता था कि एक रास्ता था (यह कहने का एक आसान तरीका नहीं है कि इसे कहां रखा जाएगा)।मैं शायद आगे बढ़ने के तरीके के साथ जाने जा रहा हूं। – MrPurpleStreak
यह इंगित करने के लिए भारी जीत है कि आदेश महत्वपूर्ण है! धन्यवाद! – JWally