如何为Node.js应用程序设置本地子域

jor*_*dan 12 subdomain localhost node.js express

我正在node.js上运行一个快速应用程序.该应用程序使用express-subdomain模块来帮助处理两个不同子域(sub1.example.com和sub2.example.com)的路由.我在AWS Elastic Beanstalk上托管应用程序.在我的生产环境中,一切都很棒.但是在我的本地机器上,我无法让它工作.我尝试将子域添加到我的主机文件中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);
Run Code Online (Sandbox Code Playgroud)

我需要能够在本地处理这个问题.将一个小的更改推送到AWS测试,迭代等需要花费很多时间.

bmu*_*n91 23

我是模块的作者:)

对于您希望在本地测试的每个新子域,必须添加到/ etc/hosts文件中.例如:

localhost是:

127.0.0.1       localhost
Run Code Online (Sandbox Code Playgroud)

一个新的子域名将是......

127.0.0.1       sub1.localhost
Run Code Online (Sandbox Code Playgroud)

和另一个..

127.0.0.1       sub2.localhost
Run Code Online (Sandbox Code Playgroud)

看看我在测试中做了些什么.

  • 抱歉,实际原因是因为没有顶级域名,例如.com或.co.uk.我已经更新了README来描述这个. (2认同)

oma*_*eed 10

我有同样的问题,我找到了一个简单的解决方案.而不是写sub1.localhost尝试替换localhostlvh.me这是一个总是解析为localhost的域,现在无论何时你写,sub1.lvh.me即使像sub1.lvh.me:3000它这样的端口仍然可以工作.