2015-02-22 4 views
1

Я не уверен, что я делаю неправильно, я пытаюсь выполнять запросы из виртуального субдомена, используя npm subdomain. Я следовал указаниям, https://github.com/edwardhotchkiss/subdomainПоддомен Node.js не работает?

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: "/"

Я не могу понять, почему, я удалил мой экспресс-маршрутизатор, я попытался удалить любую логику маршрутизации и прочее, но я все равно продолжаю это понимать. Очевидно, я делаю что-то неправильно. Что мне не хватает?

ответ

1

Итак, я вижу, что они проходят в , требуют субдомена в app.use, за которым следуют параметры. Если я переформатирую их пример, чтобы больше походить на ваш код:

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

Обратите внимание, что они ничего не передают требуемому субдомену. Вместо этого они передают объект JS, который включает базу ПОСЛЕ того, как они закрывают запрос.

Прямо сейчас ваш код выглядит так.

app.use (субдомен ({base: 'localhost', removeWWW: true}));

Так вместо того, чтобы попробовать это:

app.use (субдомена() ({база: 'локальный', removeWWW: истинный}));

ИЛИ это:

app.use (требуется ('субдомен') ({базовый: 'локальный', removeWWW: истинно}));

И дайте мне знать, устранит ли это вашу проблему.

+0

IDK, что только что произошло, но выполнив это 'app.use (subdomain ({base: 'localhost', removeWWW: true}));' просто работал, я думаю, что это то же самое. Странно, что он работает сейчас, я пытаюсь создать еще один сервер в приложении и на втором порте сервера, в котором он работал. –

+0

Я знаю, что это такое, я использую синхронизацию браузера и синхронизацию браузера на порту 3000 и имеет прокси-сервер для моего основного сервера на 9200, это как-то связано с этим. Поверьте мне, хотя я попытался использовать 9200 непосредственно ранее, но он не работал тогда, возможно, что-то было выключено, но теперь это кажется хорошим. –

Смежные вопросы