Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js作为转发代理但更改URL路径?_Javascript_Http_Node.js - Fatal编程技术网

Javascript Node.js作为转发代理但更改URL路径?

Javascript Node.js作为转发代理但更改URL路径?,javascript,http,node.js,Javascript,Http,Node.js,如何让node.js充当代理并将从一台服务器发送的所有请求转发到另一台服务器,但从url路径中剥离/couchdb/,以便例如POST/couchdb/mydatabase将成为POST/mydatabase。当它收到响应时,应该将其发送到第一台服务器 我所做的就是(使用express)获取URL路径以/couchdb开头的所有请求/ app.all(/^\/couchdb\/(?:.)*/, function(req, res) { }); 有人能带我过去吗。谢谢看一看。您可以这样使用它:

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

我所做的就是(使用express)获取URL路径以/couchdb开头的所有请求/

app.all(/^\/couchdb\/(?:.)*/, function(req, res) {

});
有人能带我过去吗。谢谢

看一看。您可以这样使用它:

  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);

我猜http代理的api自发布以来已经发生了变化。为了让它工作,我必须使用:proxy.proxyRequest(req,res,{host:'localhost',port:9000});这不再有效,因为现在必须在选项中传递某种类型的目标或前进字段。运行上述代码时,我必须为目标提供有效的url