Node.js 使用createProxyMiddleware将所有请求代理到React中的服务器

Node.js 使用createProxyMiddleware将所有请求代理到React中的服务器,node.js,reactjs,proxy,Node.js,Reactjs,Proxy,因此,在我的开发环境中,我在localhost:3000上有一个React服务器,在localhost:5000上有一个NodeJs服务器 我在React中使用了createProxyMiddleware来配置请求。这是我的配置: const {createProxyMiddleware} = require('http-proxy-middleware'); module.exports = function (app) { app.use(createProxyMiddl

因此,在我的开发环境中,我在
localhost:3000
上有一个React服务器,在
localhost:5000
上有一个NodeJs服务器

我在React中使用了createProxyMiddleware来配置请求。这是我的配置:

const {createProxyMiddleware} = require('http-proxy-middleware');
    module.exports = function (app) {
      app.use(createProxyMiddleware('/auth/google', {target: 'http://localhost:5000'}));
      app.use(createProxyMiddleware('/auth/currentUser', {target: 'http://localhost:5000'}));
      app.use(createProxyMiddleware('/api/*', {target: 'http://localhost:5000'}));
}
所有这些路线都没有任何问题。例如,我有一个类似于
localhost:3000/api/list
的路由,它被路由到
localhost:5000/api/list

但现在我有了一个类似于
localhost:3000/api/list/3132133ffdvf
的路由。随机字符串是某个id。上述路由不会被代理。它给了我一个404

为什么会这样?这不应该发生,因为我已经为
/api/*
创建了一个代理。有人能帮我吗?

通配符(
*
)只匹配一个目录级别。这意味着它匹配
/api/list
,但不匹配
/api/list/id
,因为后者有两个级别

请删除通配符,或使用globstar(
***
):

app.use(createProxyMiddleware('/api', {target: 'http://localhost:5000'}));
app.use(createProxyMiddleware('/api/**', {target: 'http://localhost:5000'}));