Динамический порт в http-proxy-middleware route/path-rewrite

Можно ли выполнить следующий маршрут/перезапись пути с помощью http-proxy-middleware?

'/sec/port/xxx/yyy' => target:'https://someotherSite.com:port/xxx/yyy'

где порт является динамическим в зависимости от начального адреса, т.е.

/sec/1234/xxx/yyy => https://someotherSite.com:1234/xxx/yyy< /а>

Я использую экспресс-сервер.


person ben sladden    schedule 22.01.2018    source источник


Ответы (1)


Вы захотите переписать путь, чтобы удалить /api/PORT, это можно сделать с помощью функции pathRewrite. newPort — это значение порта, полученное из второго индекса разделения исходного URL-адреса req.

Маршрутизатор получает требуемый номер порта из параметра запроса и просто объединяет его в качестве возвращаемого значения, динамически изменяя цель на localhost:PORTNUM.

Надеюсь это поможет.

proxyTable: {
'/api': {
    target: 'http://localhost',
    changeOrigin: true,
    pathRewrite:
        function(path,req) {
            //Get the port number
            var newPort = req.originalUrl.split('/')[2];
            //Return the path with the api and portname removed
            return path.replace('/api/'+newPort,'');
        },
    router: function(req) {
        var newPort = req.originalUrl.split('/')[2];
        //Dynamically update the port number to the target in router
        return 'http://localhost:'+newPort;
    }
}
person BigCaldog    schedule 23.01.2018
comment
Это работает в первый раз, но во время перенаправления требуется, чтобы следующий / был портом - person DarkCoderRises; 26.02.2018