Как исправить 'events.js: ошибка 167 Ошибка: подключите ECONNREFUSED 127.0.0.1:443' в Node.js, когда никакие другие приложения не пытаются использовать порт? - PullRequest
0 голосов
/ 20 января 2019

Я получаю сообщение об ошибке, описанное ниже, при запуске моего приложения node.js после выполнения нескольких вызовов API.

Ошибка не всегда отображается в одном и том же месте / строке кода.Но в большинстве случаев это происходит в конце вызова API.

     events.js:167

throw er;// Необработанное событие «ошибка» ^

Ошибка: подключить ECONNREFUSED 127.0.0.1:443 в TCPConnectWrap.afterConnect [as oncomplete] (net.js: 1113: 14) Отправлено событие «ошибка» в: в TLSSocket.socketErrorListener (_http_client.js: 391: 9) в TLSSocket.emit (events.js: 182: 13) в emitErrorNT (внутренний / streams / destroy.js: 82: 8) в emitErrorAndCloseNT (внутренний / streams / destroy.js: 50: 3) at process._tickCallback (internal / process / next_tick.js: 63: 19)

Основываясь на подобных вопросах здесь, в SO, я предполагаю, что a) что-то использует 127.0.0.1:443 и, следовательно, конфликтует с моим приложением или б) узел пытается использовать 127.0.0.1:443, но ему там нечего использовать (мое приложение слушает localhost: 3000).

Гипотеза а) некажется вероятным, так как после запуска netstat -ano |findstr 127.0.0.1:443 ничего не отображается (когда приложение работает и сразу после его завершения).

Также уничтожил все node.exe и mongod.exeb, используя любой порт на моем компьютере, закрыл терминал и перезапустилНод приложение без успеха.

В случае, если ошибка связана с гипотезой б) Я не уверен, как ее исправить.

api.post('/parsePOpdf', wagner.invoke(function(Pdfeq, Pdfdocspec, Product, User, Order){
    return async function(req,res){

        //... some code

        pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError) );
        pdfParser.on("pdfParser_dataReady", async function(pdfData) {

            fs.writeFile("./test.json", JSON.stringify(pdfData), function(err){
                console.log(err);
            });

            let pages = pdfData.formImage.Pages;
            //console.log('pages 557', pages);
            let order = {
                orderDetails : {
                    supplier : [{
                        item : []
                    }]
                }
            }; 

            for (const page of pages){
                let value = await getItemsInPDF(page, productKeys, pdfParsingDetails, order, Product, customer, supplierLink, User);
                //... more code
                order = value;
            }

            return res.json(order);         
        });
        pdfParser.loadPDF(pdfFile);

    }   
}));

Я ожидал бы, что код завершит работу без выдачи этой ошибки.

1 Ответ

0 голосов
/ 21 января 2019

Оказывается, проблема была в коде API: строка http.get для получения удаленного файла вызвала конфликт.Это имеет смысл, так как ошибка не присутствовала для других конечных точек API.

Таким образом, выясняется, что если терминал сообщает, что ни одно приложение не использует подозрительный конфликтующий порт (см. Вопрос), ответчик должен находиться в одном и том же коде, и вам нужно построчно определить, какое из них вызывает проблему (вместо этого)сосредоточиться на других приложениях, пытающихся использовать тот же порт, как я и фокусировался).

...