Узел / Express закрытие соединения перед ответом - PullRequest
0 голосов
/ 23 марта 2020

У меня есть сервер NodeJS, и я использую API REST для получения данных из Angular7. Тем не менее, это дает мне ошибку net :: ERR_EMPTY_RESPONSE в браузере.

Я пытаюсь дождаться ответа от запроса, который я делаю, к API, который я запускаю (отправка URL-адреса, содержащего JSON в качестве параметра). Это занимает более 2 минут, и я полагаю, что Express закрывает соединение из-за тайм-аута.

    app.get('/api/apps', function(req, resp) {
    var url = 'http://localhost:' + port_p + '/dataMining?url=' + 'http:%2F%2Flocalhost:3000%2Frawapps';
    var p = new Promise ((resolve, reject) => { 
        try{
            fetch(url).then(res => res.json()).then((json) =>{ 
                resolve(json);
            });
        }catch(err){
            reject(err);
        }
    });
    p.then(values => { 
        console.log(values); 
        resp.send(values);
    });
});

Этот код работает, потому что я вижу результаты в NodeJS. Но оно никогда не достигает Angular, когда JSON от параметра велико. Если он маленький, все работает отлично.

Я попробовал все с этих страниц, но он не работает:

Express. js Время ожидания ответа

https://github.com/expressjs/express/issues/3330

https://github.com/expressjs/timeout

Не только это, но Chrome вызывает запрос дважды, поэтому это занимает вдвое больше времени.

Есть идеи, как мне это решить?

...