Node.js作为转发代理但改变了URL路径?

时间:2011-02-11 07:37:25

标签: javascript http node.js

我如何让node.js充当代理并将从一个服务器发送的所有请求转发到另一个服务器,但从url路径中剥离/ couchdb /,以便例如POST / couchdb / mydatabase将是POST / mydatabase。当它收到响应时,它应该将它发送到第一台服务器。

我所做的就是这个(使用express)来获取URL路径以/ couchdb /

开头的所有请求
app.all(/^\/couchdb\/(?:.)*/, function(req, res) {

});

有人可以指导我。感谢

1 个答案:

答案 0 :(得分:12)

看看node-http-proxy。你可以像这样使用它:

  var http = require('http'),
  httpProxy = require('http-proxy');
  httpProxy.createServer(function (req, res, proxy) {
         // Put your custom server logic here (eg rewrite url/header,...)
      proxy.proxyRequest(req, res, {host: 'localhost', port: 9000});
  }).listen(8000);