वहाँएक्सप्रेस मिडलवेयर: app.use और app.all
app.use('/some/path', function(req, res, next() {})
और
app.all('/some/path', function(req, res, next() {})
वे दोनों मिडलवेयर कार्यों कि/कुछ/पथ के लिए बुलाया मिलता है के बीच एक अंतर है केवल अनुरोध, सही?
वहाँएक्सप्रेस मिडलवेयर: app.use और app.all
app.use('/some/path', function(req, res, next() {})
और
app.all('/some/path', function(req, res, next() {})
वे दोनों मिडलवेयर कार्यों कि/कुछ/पथ के लिए बुलाया मिलता है के बीच एक अंतर है केवल अनुरोध, सही?
इन दो उदाहरणों के उपयोग के बीच बड़ा अंतर है। app.use
के साथ पंजीकृत फ़ंक्शंस सामान्य मिडलवेयर फ़ंक्शन हैं और मिडलवेयर स्टैक पर उनकी स्थिति के लिए उपयुक्त कहा जाता है, आमतौर पर app.configure
फ़ंक्शन के अंदर। त्रुटि प्रबंधन कार्यों के अपवाद के साथ इस प्रकार के मिडलवेयर आमतौर पर app.route
से पहले रखा जाता है।
दूसरी ओर app.all
पर एक मार्ग समारोह (नहीं आमतौर पर मिडलवेयर कहा जाता है) जो सभी HTTP तरीकों को शामिल किया गया और केवल app.route
अंदर कहा जाता है। यदि आपका पिछला राउटर फ़ंक्शन /some/path
से मेल खाता है और next
कॉलबैक को कॉल नहीं किया गया है, तो app.all
निष्पादित नहीं किया जाएगा, इसलिए app.all
फ़ंक्शन आमतौर पर आपके रूटिंग ब्लॉक की शुरुआत में होते हैं।
तीसरे प्रकार के मिडलवेयर भी हैं, जो आपके रूटिंग कार्यों में उपयोग किए जाते हैं, उदाहरण के लिए।
app.get('/some/path', middleware1, middleware2, function(req, res, next) {});
जो typicaly पहुंच को सीमित करने या /some/path
मार्ग से संबंधित सामान्य कार्य करने के लिए प्रयोग किया जाता है।
व्यावहारिक अनुप्रयोग के लिए आप दोनों कार्यों का उपयोग कर सकते हैं, लेकिन app.use
/some/path
के साथ व्यवहार करते समय व्यवहार में अंतर से सावधान रहें। app.get
के विपरीत, app.use
अज्ञात फ़ंक्शन का आह्वान करने से पहले मार्ग से /some/path
स्ट्रिप्स।
आप express के दस्तावेज़ीकरण में और अधिक पा सकते हैं।
का डुप्लिकेट धन्यवाद! महान स्पष्टीकरण। – jamiltz
@jamiltz - कृपया इसे उत्तर के रूप में चिह्नित करें। –
यह एक्सप्रेस 3 के लिए सच है, लेकिन एक्सप्रेस 4 इसे थोड़ा अलग तरीके से संभालता है, और वे अब करीब हैं। –
http://stackoverflow.com/questions/14125997/difference-between-app-all-and-app-use –