Как настроить локальные поддомены для Node.приложение на JS

Я запускаю приложение express на узле.js. Приложение использует модуль экспресс-поддоменов чтобы помочь обрабатывать маршруты для двух разных поддоменов (sub1.example.com и sub2.example.com). Я размещаю приложение на AWS Elastic Beanstalk. В моей производственной среде все работает отлично. Но на моей локальной машине я не могу заставить это работать. Я попытался добавить поддомены в файл host 127.0.0.1 localhost sub1.localhost sub2.localhost. Хотя это позволяет мне добавлять поддомен в localhost, модуль не распознайте это как допустимый поддомен, и поэтому ищет маршруты поддоменов в моих корневых маршрутах.

в Main.js:

var routes = require('./routes/index')(passport);
var sub1_routes = require('./routes/sub1')(passport);
var sub2_routes = require('./routes/sub2')(passport);

app.use(subdomain('sub1', sub1_routes));
app.use(subdomain('sub2', sub1_routes));
app.use('/', routes);

мне нужно иметь возможность обрабатывать это локально. Требуется много времени, чтобы внести небольшие изменения в AWS test, iterate и т. д.

2 ответов


Я автор модуля :)

для каждого нового поддомена, который вы хотите протестировать локально, вы должны добавить в файл/etc / hosts. Так например:

localhost-это:

127.0.0.1       localhost

новый поддомен будет..

127.0.0.1       sub1.localhost

и еще..

127.0.0.1       sub2.localhost

проверьте, что я сделал в тесты.


Я имел же проблема и я нашел простое решение. Вместо того чтобы писать!--0--> попробуйте заменить localhost С lvh.me это домен, который всегда разрешает localhost и теперь, когда вы пишете sub1.lvh.me хотя порт вроде sub1.lvh.me:3000 он все равно будет работать.