Узел JS Express, модули запросов большая проблема

#node.js #express #request #pipe

Вопрос:

У нас есть прокси-сервер. Когда я отправляю ему запрос, он отправляет запрос на другой сайт через прокси-сервер, получает ответ, обрабатывает его и возвращает клиенту. Текущая реализация заключается в следующем:

 var app = express();
const myrequest = require('request');

app.get("/*", urlencodedParser, async function (request, response) {
    myrequest({
        url: 'https://google.com'
    }).pipe(response);
}
 

Однако, если я хочу обработать ответ, а обработка требует времени, я больше не могу вернуть ответ клиенту

Не работает:

 var app = express();
const myrequest = require('request');
    
async function timeout(ms) {
    return new Promise((resolve) => {
        setTimeout(() => resolve(), ms)
    })
}

app.get("/*", urlencodedParser, async function (request, response) {
    myrequest({
        url: 'https://google.com'
    }, function(resp){
        if(cond1){
            await timeout(5000); //abstract function, need time to complite
        }
        resp.pipe(response); //Not work, empty response in browser
        //or
        response.set(resp.headers);
        response.write(resp.body);
        response.end(); //Not work, ERROR_INCOMPLETE_CHUNKED_ENCODING in browser
    });
}
 

Помогите, пожалуйста!