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