我想允许 Express 中经过身份验证的客户端访问在服务器上运行但在不同端口上的其他 Web 应用程序。
例如,我有 express 运行,http://myDomain
并且我有另一个应用程序运行在说 port 上9000
。我希望能够通过http://myDomain/proxy/9000
.
我使用node-http-proxy取得了一些成功,例如:
function(req, res) {
var stripped = req.url.split('/proxy')[1];
var path = stripped.split('/');
var port = path.shift();
var url = path.join('/');
req.url = url;
proxy.web(req, res, {
target: 'http://127.0.0.1:' + port
});
}
然而,最大的问题是当 web 应用程序发出 GET 请求时,例如 for /js/lib.js
,它会解析为http://myDomain/js/lib.js
,这是有问题的,因为 express 不知道这些资产。正确的要求是http://myDomain/proxy/9000/js/lib.js
. 我如何路由所有这些额外的请求?