如何代理使用节点使用 express-http-proxy 剥离最后的休息

How to Proxy using Node using express-http-proxy to strip final rest

在我的本地JavaScript,我想打个休息电话给

/rest/speakers

并将其代理到

http://localhost:2011/rest/speakers

我有如下代码,但不能完全按照我的意愿工作:

var proxy = require('express-http-proxy');
var app = require('express')();
app.use('/rest', proxy('localhost:2011/'));
app.listen(8081, function () {
    console.log('Listening on port 8081');
});

要使代理工作,我实际上需要调用

/rest/rest/speakers

我有点明白了。似乎我正在将我的 /rest 代理到 localhost:2011 的根目录,然后我需要深入到该服务器的 /rest。添加 /restproxy(..) 的末尾将被忽略。

尝试使用 proxyReqPathResolver 根据需要修改您的 URL。

var url = require('url'),
    proxy = require('express-http-proxy');

// ... other app setup here 

app.use('/rest', proxy('localhost:2011', {
    proxyReqPathResolver: function(req, res) {
      return '/rest/rest' + url.parse(req.url).path;
    }
}));