关于http-proxy-middleware的使用issue
解决浏览器跨域问题,express+http-proxy-middleware 的时候遇到问题:
app.use('/api', createProxyMiddleware({
target: 'http://xxx.com',
changeOrigin: true,
logLevel: 'debug',
}));
无日志,不转发
解决问题:add hook
app.use('/api', createProxyMiddleware({
target: 'http://xxx.com',
changeOrigin: true,
logLevel: 'debug',
onProxyReq(proxyReq, req, res) {
console.log('[HPM] Proxying request to:', proxyReq.path);
},
onProxyRes(proxyRes, req, res) {
console.log('[HPM] Got response status:', proxyRes.statusCode);
},
onError(err, req, res) {
console.error('[HPM] Error during proxy:', err);
res.status(500).send('Proxy failed');
}
}));
总结:
-
现象:加了
onProxyReq就转发了,否则啥都不干 -
排查过程:打印日志、版本确认、打断点测试
-
背后机制:惰性执行、短路机制、ESM-only 限制
- 最佳实践:起码加一个hook:
onProxyReq

浙公网安备 33010602011771号