Reactjs http代理中间件未代理到其他服务器的索引页?

Reactjs http代理中间件未代理到其他服务器的索引页?,reactjs,http-proxy-middleware,Reactjs,Http Proxy Middleware,我有两台服务器在Docker上运行。一个是react前端,位于localhost:3000,而后端运行于localhost:9000。当我转到localhost:3000/api时,我想进入后端的索引页面,即localhost:9000 在通过create react app创建的myApp文件夹中创建了setupProxy.js文件: const proxy = require('http-proxy-middleware'); module.exports = function(app)

我有两台服务器在Docker上运行。一个是react前端,位于
localhost:3000
,而后端运行于
localhost:9000
。当我转到localhost:3000/api时,我想进入后端的索引页面,即
localhost:9000

在通过create react app创建的myApp文件夹中创建了setupProxy.js文件:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(proxy('/api', { target: 'http://backend:9000' }));
};

当我转到
localhost:3000/api
时,我会被发送到
localhost:9000/api
,而不是
localhost:9000

http代理中间件
有一个
pathRewrite
选项,请参阅

在您的特殊情况下:

constproxy=require('http-proxy-middleware');
module.exports=函数(应用程序){
应用程序使用(代理(“/api”{
目标:'http://backend:9000',
路径重写:{'^/api':'''}
}));
};
这通常应将
localhost:3000/api/endpoint
重写为
localhost:9000/endpoint

请注意,还有一个
路由器
选项可用于更定制的行为