node-http-proxy icon indicating copy to clipboard operation
node-http-proxy copied to clipboard

Making onProxyRes function asynchronous friendly

Open rainb3rry opened this issue 1 year ago • 1 comments
trafficstars

I would like to be able to set response after a specific time passed as my code below, but it's not possible.

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

const app = express();

const asyncFunc = () => {
  return new Promise((resolve) => {
    setTimeout(() => resolve("Hello World!"), 3000)
  })
}


const onProxyRes = async function  (proxyRes, req, res) {


  const result = await asyncFunc()

  res.write(result);
  res.end();

};


const exampleProxy = createProxyMiddleware({
  target: 'https://example.com',
  changeOrigin: true,
  on: { proxyRes: onProxyRes }
});
app.use('/', exampleProxy);



app.listen(3003)

But if I remove const result = await asyncFunc() part, I can set response anything I want inside of res.write();.

rainb3rry avatar Nov 18 '24 10:11 rainb3rry