उसी कार्यक्षमता की तलाश में मैं इस सवाल पर आया।
@ जोनाथन ओंग ने ऊपर एक टिप्पणी में उल्लेख किया है कि रास्तों के लिए सरणियों का उपयोग किया जाता है, लेकिन इसे स्पष्ट रूप से एक्सप्रेस 4 में वर्णित किया गया है, और यह एक्सप्रेस 3.x में काम करता है। यहाँ कुछ करने की कोशिश करने का एक उदाहरण है:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
request
एक पथ के साथ वस्तु के अंदर से /hooplul/poo?bandle=froo&bandle=pee&bof=blarg
:
"route": {
"keys": [
{
"optional": false,
"name": "farcus"
}
],
"callbacks": [
null
],
"params": [
null,
null,
"lul"
],
"regexp": {},
"path": [
"/test",
"/alternative",
"/barcus*",
"/farcus/:farcus/",
"/hoop(|la|lapoo|lul)/poo"
],
"method": "get"
},
ध्यान दें कि परमेस के साथ क्या होता है: यह सभी संभावित रास्तों में कैप्चर समूहों और परमों के बारे में जानता है, चाहे वे वर्तमान अनुरोध में उपयोग किए जाते हैं या नहीं।
तो एक सरणी के माध्यम से कई रास्तों को स्टैकिंग आसानी से किया जा सकता है, लेकिन साइड-इफेक्ट संभवतः अप्रत्याशित हैं यदि आप उस पथ से उपयोगी कुछ लेने की उम्मीद कर रहे हैं जो परमेस या कैप्चर समूहों के माध्यम से उपयोग किया गया था। यह शायद अतिरेक / अलियासिंग के लिए अधिक उपयोगी है, इस स्थिति में यह बहुत अच्छा काम करेगा।
संपादित करें: कृपया नीचे @ c24w का उत्तर भी देखें ।
संपादन 2: यह एक मध्यम लोकप्रिय उत्तर है। कृपया ध्यान रखें कि ExpressJS, अधिकांश Node.js पुस्तकालयों के साथ, एक जंगम दावत है। जबकि ऊपर राउटिंग अभी भी काम करता है (मैं इसे इस समय उपयोग कर रहा हूं, एक बहुत ही उपयोगी सुविधा), मैं अनुरोध ऑब्जेक्ट के आउटपुट के लिए वाउच नहीं कर सकता (यह निश्चित रूप से मेरे द्वारा वर्णित से अलग है)। कृपया वांछित परिणाम प्राप्त करने के लिए सावधानीपूर्वक परीक्षण करें।