2016-09-12 7 views
1

Я хочу интегрировать BrowserSync с выражением.Express с Browser-Sync

Я хочу вытащить URL из базы данных и использовать его в качестве прокси. Однако при установке, которую я придумал, инициализируется новый сервер BrowserSync для каждого запроса.

Есть ли способ выполнить это без инициализации нового сервера BrowserSync каждый раз?

Или я должен использовать другой подход?

var bs  = require("browser-sync"); 
var express = require("express"); 

var router = express.Router(); 
var app  = express(); 

router.get("/", function(req, res){ 
    bs.create("bs1").init({ 
     notify: false, 
     open: false, 
     ui: false, 
     port: 10000, 
     proxy: 'http://example.com' 
    }); 
     res.send(); 
}); 

app.use(router); 

app.listen(8080, function(){ 
    console.log('listening on *:8080'); 
}); 
+0

Вы хотите вытащить другой прокси каждый звонок? –

+0

@EmileBergeron Да. В идеале я хотел бы, чтобы уникальный субдомен ссылался на каждый URL-адрес прокси. Например: sub1.mysite.com всегда будет прокси-сервером www.example.com. sub2.mysite.com всегда будет прокси-сервером www.example2.com. Есть предположения? – Orane

ответ

2

Получается, что это невозможно сделать с любой легкостью.

В итоге я использовал экспресс-http-прокси и express-vhost для субдоменов.

app = require('express')(); 
vhost = require('vhost'); 
proxy = require('express-http-proxy'); 

app.use(vhost('sub1.mysite.com', proxy('http://www.example.com'))); 

app.listen(8080); 

Надеюсь, это поможет кому-то в один прекрасный день.