You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决React的Cannot GET /错误?使用createProxyMiddleware遇问题

使用createProxyMiddleware出现Cannot GET /错误的原因及解决办法

你的代码仅配置了/api路径的代理规则,但Express服务器未处理根路径/的请求,直接访问http://localhost:3000/时,找不到对应路由逻辑,因此返回Cannot GET /错误。

你的代码如下:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

const apiProxy = createProxyMiddleware('/api', { 
  target: 'http://themis-server.test.seewo.com', 
});

app.use('/api', apiProxy);
app.listen(3000);

解决办法分两种场景:

场景1:提供本地静态页面

如果需要通过Express托管本地静态文件(如HTML、CSS、JS),添加express.static中间件指定静态文件目录。假设静态文件放在项目根目录的public文件夹下,修改代码如下:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

// 托管public目录下的静态资源
app.use(express.static('public'));

const apiProxy = createProxyMiddleware('/api', { 
  target: 'http://themis-server.test.seewo.com', 
});

app.use('/api', apiProxy);
app.listen(3000);

此时访问http://localhost:3000/会自动加载public目录下的index.html(若存在)。

场景2:代理根路径到目标服务器

如果需要把根路径请求也转发到目标服务器,新增根路径代理配置,同时建议添加changeOrigin参数避免跨域问题:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

const apiProxy = createProxyMiddleware('/api', { 
  target: 'http://themis-server.test.seewo.com', 
});

// 代理根路径到目标服务器
const rootProxy = createProxyMiddleware('/', { 
  target: 'http://themis-server.test.seewo.com',
  changeOrigin: true
});

app.use('/api', apiProxy);
app.use('/', rootProxy);
app.listen(3000);

内容的提问来源于stack exchange,提问作者Nathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:54:23