2013-04-03 13 views
6

मैं एकाधिक डोमेन की सेवा करने वाले एक उदाहरण पर चलाने के लिए अपनी नोड.जेएस संचालित साइट प्राप्त करने की कोशिश कर रहा हूं। मेरे पास मेरा मुख्य डोमेन है, example.com और उसके बाद मेरे पास admin.example.com और api.example.com हैं जिनमें सभी के पास अलग-अलग मार्ग हैं, मैं एक्सप्रेस का उपयोग कर रहा हूं।Node.js सबडोमेन

अब तक मैंने सबडोमेन के लिए दो ए रिकॉर्ड जोड़े हैं, और मेरे सेंटोस बॉक्स पर /var/vhosts में दो प्रविष्टियां भी शामिल की हैं।

127.0.0.1 api.example.com 
127.0.0.1 admin.example.com 
127.0.0.1 example.com 

मुझे पता एक्सप्रेस एक express.vhost विधि है तो मैं पहले से ही की कोशिश की है हूँ:

app.use(express.vhost('api.example.com', require('./lib/subdomains/api'))) 
app.use(express.vhost('admin.example.com', require('./lib/subdomains/admin'))) 

लेकिन वह अभी भी केवल अपने मुख्य मार्गों जो नीचे आयात किया जाता है कार्य करता है। मैं क्या खो रहा हूँ?

+0

क्या में है, कहते हैं के साथ मेहनती हो, '।/Lib/उप डोमेन/api'? – robertklep

+0

[इस गिस्ट] की पंक्तियों के साथ कुछ (https://gist.github.com/jbrooksuk/5300772) जिस चीज को मैं कोशिश कर रहा था वह एक बिंदु पर करना था 'app.use (express.vhost (' api.example .com ', की आवश्यकता है (' ./ lib/subdomains/api ') ऐप)) – James

+0

यहां एक [gist] (https://gist.github.com/robertklep/5300792) है जो मेरे लिए ठीक काम करता है। क्या आप ब्राउज़र में या सीएलआई उपकरण के साथ जांच कर रहे हैं? यदि उत्तरार्द्ध, क्या यह सही 'होस्ट' हेडर भेज रहा है? ब्राउज़र में – robertklep

उत्तर

9

अगर किसी और को यह प्रश्न मिल जाए, तो आप यह जांचना चाहेंगे कि आप अपने vhost मार्ग पैरामीटर को सही तरीके से पास कर रहे हैं।

मैं उपयोग कर रहा था:

app.get('/', function(res, req) { /* Do stuff.. */ } 

जब यह होना चाहिए। कॉलबैक फ़ंक्शन के लिए पहला तर्क req है, फिर दूसरा res है।

app.get('/', function(req, res) { /* Do stuff.. */ } 

अपने कोड :)

+1

यह क्या है? जब कोड का स्पष्ट रूप से कुछ अंतर होता है तो कोड की 2 पंक्तियां ??? – inteist

+7

(res, req) आसपास के अन्य तरीके हैं :) – orszaczky

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