Node.js子域不工作?

我不知道我在做什么错误,我正在尝试使用npm subdomain从虚拟子域请求。 我按照指示https://github.com/edwardhotchkiss/subdomain

 var subdomain = require('subdomain'); var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); app.use(subdomain({ base : 'localhost', removeWWW : true })); app.get('/subdomain/blog/', function(request, response) { response.end('BLOG.LOCALHOST: "/"'); }); app.get('/', function(request, response) { response.end('LOCALHOST: "/"'); }); 

并在我的电脑主机文件,我补充说

 127.0.0.1 localhost 127.0.0.1 blog.localhost 

当我路由到http://blog.localhost:3000/我得到这个返回的LOCALHOST: "/"而不是BLOG.LOCALHOST: "/"

我不知道为什么,我删除了我的快速路由器,我试图删除任何路由逻辑和东西,但我仍然得到这一点。 显然我做错了什么。 我错过了什么?

所以我看到他们将需要的子域传入app.use,然后是params。 如果我重新格式化他们的例子看起来更像你的代码:

app.use(require('subdomain')({base:'yourdomain.com'}));

请注意,它们不会将任何内容传递给require子域。 相反,他们传递的JS对象,其中包括基地后,他们closures的要求。

现在你的代码看起来像这样。

app.use(subdomain({base:'localhost',removeWWW:true}));

所以请尝试一下:

app.use(subdomain()({base:'localhost',removeWWW:true}));

或这个:

app.use(require('subdomain')({base:'localhost',removeWWW:true}));

让我知道这是否解决了你的问题。