我不确定我做错了什么,我正在尝试使用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: "/"
我无法弄清楚为什么,我删除了我的快速路由器,我尝试删除任何路由逻辑和东西,但我仍然继续这样做。显然我做错了什么。我错过了什么?
答案 0 :(得分:1)
所以我看到他们将 require subdomain 传递到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}));
请告诉我这是否可以解决您的问题。