Node.js 子域不起作用?

Node.js subdomain not working?

我不确定我做错了什么,我正在尝试使用 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: "/"

我不明白为什么,我删除了我的 express 路由器,我尝试删除任何路由逻辑和东西,但我仍然得到它。显然我做错了什么。我错过了什么?

所以我看到他们将 require 子域 传入 app.use,然后是参数。如果我重新格式化他们的示例以使其看起来更像您的代码:

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

请注意,他们不会将任何内容传递给 require 子域。相反,他们在关闭需求后传入包含基础的 JS 对象。

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

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

所以试试这个:

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

或者这个:

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

如果这能解决您的问题,请告诉我。