关于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 
posted @ 2025-06-05 02:04  PEAR2020  阅读(55)  评论(0)    收藏  举报