2012-10-04 9 views
19

मैं express.js के app.get फ़ंक्शन पर कुछ दस्तावेज़ ढूंढ रहा हूं।एक्सप्रेस app.get दस्तावेज

app.get(
    '/path', 
    middleware(), 
    function(req, res) { 
     res.redirect('/'); 
    } 
); 

ऊपर दिया गया उदाहरण तीन पैरामीटर लेता है। सामान्य दस्तावेज़ केवल दो दिखाते हैं। मुझे दिलचस्पी है कि यह मध्य परम क्या करता है और इसका उपयोग कैसे करें।

+3

आप मिडलवेयर कार्यों को ढेर कर सकते हैं: app.get ('/ account', fn1, fn2, fn3, function (err, req, res) {}); उस सरल उत्तर के लिए – chovy

+1

@chovy thx। नया साल मुबारक 2015! –

उत्तर

23

इसके लिए दस्तावेज़ app.METHODdocumentation का हिस्सा हैं, जहां get समर्थित HTTP विधियों में से एक है।

दूसरा, वैकल्पिक पैरामीटर, मिडलवेयर कहा जाता है (और आप मिडलवेयर कार्यों की एक सरणी पास कर सकते हैं)। यह एक ऐसा फ़ंक्शन है जिसे तीसरे पैरामीटर कॉलबैक (वास्तविक मार्ग हैंडलर) से पहले कहा जाता है और मिडलवेयर फ़ंक्शन की ज़िम्मेदारी है कि आपके कोड को DRY का पालन करने दें (स्वयं को दोहराएं) सिद्धांत।

मिडलवेयर फ़ंक्शंस का उदाहरण अनुमति जांच, एक्सेस सत्यापन, सत्रों की सत्यापन (यदि उपयोगकर्ता लॉग इन नहीं है, उसे पृष्ठ में लॉग इन करें), और ऐसे हैं।

चूंकि कई मार्ग एक ही व्यवहार की इच्छा रखते हैं, तो आप एक मिडलवेयर का उपयोग करते हैं ताकि आपको एक ही कोड को कई बार लिखना पड़े।

+0

मैं कुछ मिडलवेयर फ़ंक्शंस बनाना चाहता हूं लेकिन मुझे वास्तव में दस्तावेज़ नहीं मिल रहा है कि वे कैसे काम करते हैं और वे कौन से पैरा लेते हैं। मुझे एक उदाहरण कोड मिला जिसमें एक फ़ंक्शन है जो 'req, res, next' को तर्क के रूप में लेता है लेकिन मुझे यकीन नहीं है कि इसका उपयोग कैसे करें। – ThomasReggi

+1

यहां मिडलवेयर फ़ंक्शंस हमेशा उन तीन पैरामीटर लेते हैं: 'अनुरोध' ऑब्जेक्ट, 'प्रतिक्रिया' ऑब्जेक्ट, और 'अगली' कॉलबैक कॉल करने के लिए जब मध्यवर्ती पूर्ण हो जाता है। 'अगली' त्रुटि पर एक त्रुटि ऑब्जेक्ट पास करें, या अगली कॉलबैक पर नियंत्रण पास करने के लिए कोई पैरामीटर नहीं दें। – JohnnyHK

+0

क्या आप किसी अन्य विधि के मिडलवेयर के उदाहरण के बारे में जानते हैं, जो पथ के नीचे पैरामेट करने के लिए नोड/एक्सप्रेस का उपयोग करता है। उदाहरण के लिए मार्ग '/ लॉगिन? आयु = 23' '/ login? Name = thomas' से? मैं वास्तव में इसका एक उदाहरण उपयोग कर सकता था। मुझे पता है कि अगर मैं 'req.query.age' और' req.query.name' पर आधारित हूं तो वे एक सशर्त उपयोग कर सकते हैं, यदि वे 'अपरिभाषित' हैं या नहीं, लेकिन यह वास्तव में परिष्कृत नहीं है। क्या मिडलवेयर समाधान है? – ThomasReggi

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