Экспресс с Browser-Sync

Я хочу интегрировать BrowserSync с Express.

Я хочу получить 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');
});

person Orane    schedule 12.09.2016    source источник
comment
Вы хотите использовать разные прокси для каждого вызова?   -  person Emile Bergeron    schedule 13.09.2016
comment
@ЭмильБержерон Да. В идеале я хотел бы, чтобы уникальный поддомен ссылался на каждый URL-адрес прокси. Например: sub1.mysite.com всегда будет проксировать www.example.com. sub2.mysite.com всегда будет проксировать www.example2.com. Какие-нибудь мысли?   -  person Orane    schedule 13.09.2016


Ответы (1)


Так что получается, что это на самом деле не может быть сделано с легкостью.

Вместо этого я использовал express-http-proxy и 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);

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

person Orane    schedule 20.09.2016