Closed yvanlok closed 8 months ago
http-proxy-middleware
When I utilise body-parser to read req.body, the request fails due to a timeout.
req.body
1. apiRoutes.js: const defaultOptions = { target: TARGET_1, changeOrigin: true, followRedirects: true, onProxyReq: (proxyReq, req, res) => { proxyReq.setHeader("Authorization", `Bearer ${API_KEY_1}`); }, }; // Route /v1/chat/completions router.use( "/v1/chat/completions", corsMiddleware, chatCompletionsLimiterMinute, chatCompletionsLimiterHour, bodyParser.json(), createProxyMiddleware({ ...defaultOptions, router: function (req) { console.log(JSON.stringify(req.body)); return "*****"; }, }) ); 2. app.js import apiRoutes from "./apiRoutes.js"; app.use(apiRoutes);
I should expect to be able to read req.body and also the request should be successful.
http-proxy-middleware@2.0.6
const defaultOptions = { target: TARGET_1, changeOrigin: true, followRedirects: true, onProxyReq: (proxyReq, req, res) => { proxyReq.setHeader("Authorization", `Bearer ${API_KEY_1}`); }, }; // Route /v1/chat/completions router.use( "/v1/chat/completions", corsMiddleware, chatCompletionsLimiterMinute, chatCompletionsLimiterHour, bodyParser.json(), // Add body-parser here createProxyMiddleware({ ...defaultOptions, router: function (req) { console.log(JSON.stringify(req.body)); return "https://api.naga.ac"; }, }) );
System: OS: Windows 10 10.0.22621 CPU: (12) x64 AMD Ryzen 5 5600X 6-Core Processor Memory: 18.80 GB / 31.91 GB Binaries: Node: 20.5.1 - C:\Program Files\nodejs\node.EXE Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD npm: 10.1.0 - C:\Program Files\nodejs\npm.CMD Utilities: Git: 2.41.0. Curl: 8.0.1 - C:\Windows\system32\curl.EXE IDEs: VSCode: 1.83.1 - C:\Users\*****\AppData\Local\Programs\Microsoft VS Code\bin\code.CMD Languages: Python: 3.11.5 Browsers: Internet Explorer: 11.0.22621.1
No response
Fixed by adding this line:
onProxyReq: (proxyReq, req, res) => { proxyReq.setHeader("Authorization", `Bearer ${API_KEY_1}`); proxyReq.write(JSON.stringify(req.body)); }
Checks
http-proxy-middleware
.Describe the bug (be clear and concise)
When I utilise body-parser to read
req.body
, the request fails due to a timeout.Step-by-step reproduction instructions
Expected behavior (be clear and concise)
I should expect to be able to read
req.body
and also the request should be successful.How is http-proxy-middleware used in your project?
What http-proxy-middleware configuration are you using?
What OS/version and node/version are you seeing the problem?
Additional context (optional)
No response