में एक्सप्रेस के साथ क्वेरीस्ट्रिंग के साथ पूर्व-रूटिंग, मैं कुछ नियमों को सेट करने और वास्तविक रूटिंग होने से पहले कोड के छोटे टुकड़े को निष्पादित करने के मामले में क्वेरीस्ट्रिंग को पार्स करने के लिए एक्सप्रेस का उपयोग करने का प्रयास कर रहा हूं। उपयोग-मामला एक निश्चित मूल्य को पकड़ना है, जिसे सेट किया जा सकता है, किस लिंक का उपयोग किया जा रहा है। मैं अगली() का उपयोग कर अगले संभावित नियम में सामग्री को पास करने के लिए एक्सप्रेस 'कार्यक्षमता का उपयोग करता हूं।नोड जेएस
अब तक, मैंने कोशिश की - सभी app.get/उत्तर नियम-ब्लॉक के शीर्ष पर:
app.get('[?&]something=([^&#]*)', function(req, res, next) {
var somethingID = req.params.something;
// Below line is just there to illustrate that it's working. Actual code will do something real, of course.
console.log("Something: "+somethingID);
next();
})
app.get('/', site.index);
और यह भी:
app.param('something', function(req, res, next) {
var somethingID = req.params.something;
console.log("Something: "+somethingID);
next();
})
app.get('/', site.index);
क्या शुरू हो जाना चाहिए का उदाहरण :
URL: www.example.com/?something=10239
URL: www.example.com/superpage/?something=10239
URL: www.example.com/minisite/?anything=10&something=10239
दुर्भाग्य से, मेरी समाधान में से कोई भी वास्तव में काम किया, और जो कुछ होता है, कि अगले मिलान शासन शुरू हो रहा है, लेकिन उपरोक्त छोटे कार्य को कभी निष्पादित नहीं किया जाता है। किसी के पास कोई विचार है, यह कैसे किया जा सकता है?
संपादित करें: मुझे समझ में आता है कि पैरामीटर उदाहरण काम नहीं कर रहा था, क्योंकि मैं बाद में किसी अन्य रूटिंग-नियम के भीतर कहा पैरामीटर का उपयोग नहीं कर रहा हूं, और यह तब ट्रिगर किया जाएगा।
मैं यह भी समझता हूं, कि तर्क का तात्पर्य है कि एक्सप्रेस क्वेरीस्ट्रिंग को अनदेखा करता है और यह सामान्यतः पहले से ही रूटिंग के बाद एक फ़ंक्शन के भीतर पार्स किया गया है। लेकिन जैसा कि बताया गया है, मुझे इसे "मार्ग-अज्ञेयवादी" होने की आवश्यकता है और इस एप्लिकेशन के भीतर संसाधित किए गए किसी भी URL के साथ काम करना चाहिए।
यह मेरे स्वयं के समाधान से अधिक सुरुचिपूर्ण और मान्य है। बहुत बहुत धन्यवाद। – lucorlis