Я пытаюсь отследить причину сбоя моего кода с этой ошибкой:
{ Error: connect ECONNREFUSED 127.0.0.1:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1082:14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 443 }
, и трассировка стека для этой ошибки выглядит следующим образом:
Error: connect ECONNREFUSED 127.0.0.1:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1082:14)
Я делаюсетевое соединение, но я не пытаюсь подключиться к localhost.
Сетевой код, который я использую, прекрасно работает (и подключается к нужному хосту) в других контекстах.
Яиспользуя узел 11.6.0, предоставленный brew install, и похоже, что единственное вхождение строки "net.js" в структуре каталога brew "Cellar" находится в самом двоичном файле узла.Другими словами, даже после того, как
brew install --build-from-source node
работает
find /usr/local/Cellar/node/11.6.0 -type f | xargs fgrep -l net.js
находит только один файл: /usr/local/Cellar/node/11.6.0/bin/node и нет сети. * файлы в этом дереве каталогов.
Если это имеет значение, мой код, который, по-видимому, вызывает эту ошибку, выглядит следующим образом:
const get_json_with_auth= async (channel, url) => {
const parsed_url= URL.parse(url);
return new Promise((good, fail) => {
let request= require('https').get({
hostname: parsed_url.hostname,
path: parsed_url.path,
headers: {
Authorization: get_auth('GET', channel, url)
}
});
console.log('url', url);
request.on('response', response=> {
const chunks= [];
response.on('data', data=> chunks.push(data));
response.on('end', ()=> good(JSON.parse(Buffer.concat(chunks).toString())));
});
request.on('error', err=> fail(err));
});
};
(я нахожусь на OSX high sierra здесь.)
Но, опять же, имя хоста в URL-адресе, который я использую, не преобразуется в localhost (и прекрасно работает в других контекстах).
Как изолировать проблему, подобную этой