2015-06-12 8 views
6

मैं एक वेब अनुप्रयोग पर एक्सप्रेस 'Router का उपयोग कर रहा हूं। मैं रूटर हमेशा की तरह जोड़ रहा:एक्सप्रेस पर राउटर के माउंट पथ को कैसे जानें?

app.use(router, '/myroutehere/'); 

प्रत्येक रूटर के लिए संचालकों जहां वे किया गया है की किसी भी विचार की जरूरत नहीं है (विभिन्न फाइलें, विभिन्न चिंताओं, आदि) "घुड़सवार"। इसने अभी तक ठीक काम किया है कि मुझे रूटर में से एक के लिए एक TOC बनाने की आवश्यकता है (और सामग्री गतिशील रूप से जेनरेट की गई है)। मैं सापेक्ष पथ को संभालने के लिए url.resolve का उपयोग कर रहा हूं, लेकिन मुझे यूआरएल का प्रारंभिक भाग याद आ रहा है (अन्यथा /myrouter/ के बजाय लिंक / पर हल हो जाएंगे)।

क्या राउटर के माउंट पथ को अलग-अलग स्थानों में हार्डकोड किए बिना जानने का कोई तरीका है?

router.get('/', function(req, res){ 
    // Need to know the mount path here or a way to resolve relative links 
    // to the mount path and make them absolute to the app 
}); 

उत्तर

5

"राउटर.माउंटपाथ" के बारे में क्या?

http://expressjs.com/api.html#app.mountpath

Upd। ठीक है, आप की जरूरत: <req.route.path>, <req.baseUrl>, <req.originalUrl>

+0

केवल एक्सप्रेस ऐप्स और रूटर वस्तु :(मैं अभी अपरिभाषित हो रही है लेकिन सिर्फ मामले में फिर से अपने कोड की समीक्षा करेंगे –

+1

ठीक है, आप की जरूरत नहीं के साथ काम करने लगता है कि:। ' , , ' –

+1

req.baseUrl सही लगता है हालांकि यह मेरे मामले में समाप्त/गायब है। क्या आप अपना उत्तर अपडेट कर सकते हैं ताकि मैं इसे चिह्नित कर सकूं वैध एक? बहुत बहुत धन्यवाद! –

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