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

我不知道为什么,我删除了我的快速路由器,我尝试删除了任何路由逻辑和其他东西,但我仍然不断得到。显然我做错了。我想念什么?

最佳答案

因此,我看到它们将require子域传递到app.use中,然后是params。如果我重新格式化他们的示例,使其看起来更像您的代码:


  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}));


并且让我知道这是否可以解决您的问题。

关于node.js - Node.js子域无法正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28661975/

10-17 03:01