2015-02-27 4 views
6

मैं एनपीएम सबडोमेन का उपयोग कर रहा हूं, और रूटिंग को साफ रखने के लिए मैं कुछ ऐसा करना चाहता हूं।एक्सप्रेस पता लगाता है कि अनुरोध उप डोमेन से आया है?

router.get('/login_success',function(req,res) { 

    if(req.subdomain) { 
    res.redirect('/'); 
    } else { 
    res.sendStatus(200); 
    } 

}); 

ऊपर में, सब-डोमेन के माध्यम से अनुप्रयोग में उपयोगकर्ता के लॉग, मैं सब-डोमेन जड़ जो एक प्रोफ़ाइल renders पर पुन: निर्देशित करता है, तो।

यदि उपयोगकर्ता गैर उप-डोमेन मार्ग के माध्यम से लॉग इन करता है, तो यह दृश्य प्रस्तुत करने के लिए AJAX का उपयोग कर रहा है, इसलिए मुझे 200 स्थिति भेजने की आवश्यकता है कि उपयोगकर्ता मान्य है।

मुझे लगा कि यह बहुत अधिक साफ है कि प्रत्येक के लिए दो अलग कॉलबैक मार्ग हैं।

तो मेरा सवाल है, यह पता लगाने का कोई तरीका है कि रिक उप-डोमेन या नियमित डोमेन से आया है या नहीं।

मुझे पता है कि req.headers.origin है लेकिन मुझे आश्चर्य है कि क्या ऐसा करने का अधिक सापेक्ष तरीका है, इसलिए स्थानीय और उत्पादन के बीच आगे और आगे जाने पर मुझे इसे बदलने की ज़रूरत नहीं है।

उत्तर

11

req.subdomains का उपयोग करें, यह आपको यूआरएल में उपयोग किए गए सबडोमेन की एक सूची देगा। Here's जहां मुझे जानकारी मिली।

+0

वाह मैं करीब था, मैंने कोशिश करने के लिए 'req.subdomain' की कोशिश की और कुछ भी नहीं मिला। मैंने 'req' ऑब्जेक्ट का भी निरीक्षण किया और कुछ भी नहीं मिला। लेकिन यह काम किया, भयानक आदमी! –

+1

कोई समस्या नहीं, कोई और समस्या हमेशा दस्तावेज़ों को संदर्भित करती है, http://expressjs.com/4x/api.html – MJPinfield

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