2013-04-03 3 views
6

Я пытаюсь запустить мой сайт Node.js для работы в одном экземпляре, обслуживающем несколько доменов. У меня есть мой основной домен, example.com, а затем у меня есть admin.example.com и api.example.com, у которых все разные маршруты и т. Д., Я использую Express.Поддомены Node.js

До сих пор я добавил две записи A для субдоменов, а также добавил две записи в /var/vhosts на мой блок CentOS.

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

Что, скажем, './Библиотека/поддоменов/api'? – robertklep

+0

Что-то вроде линий [this Gist] (https://gist.github.com/jbrooksuk/5300772) то, что я пытаюсь сделать в какой-то момент, было «app.use (express.vhost (« api.example » .com ', require (' ./ lib/subdomains/api '). app)) ' – James

+0

Вот [gist] (https://gist.github.com/robertklep/5300792), который отлично подходит для меня. Вы проверяете браузер или инструмент CLI? Если последнее, отправляет ли он правильный заголовок «Host»? – 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

Смежные вопросы