首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何追踪节点网络代码中的错误?

如何追踪节点网络代码中的错误?
EN

Stack Overflow用户
提问于 2019-01-18 02:15:50
回答 1查看 1.1K关注 0票数 0

我正在尝试追踪我的代码失败的原因,并显示以下错误:

代码语言:javascript
复制
 { 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 }

该错误的堆栈跟踪如下所示:

代码语言:javascript
复制
 Error: connect ECONNREFUSED 127.0.0.1:443
     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1082:14)

我正在建立网络连接,但我没有尝试连接到localhost。

我使用的网络代码在其他上下文中运行良好(并连接到正确的主机)。

我使用的是brew安装程序提供的节点11.6.0,在brew "Cellar“目录结构中,字符串"net.js”似乎只出现在节点二进制文件本身中。换句话说,即使在

代码语言:javascript
复制
 brew install --build-from-source node

正在运行

代码语言:javascript
复制
 find /usr/local/Cellar/node/11.6.0 -type f | xargs fgrep -l net.js

只找到一个文件: /usr/local/Cellar/node/11.6.0/bin/node,并且该目录树中没有net.*文件。

如果这很重要,我的代码似乎触发了这个错误,如下所示:

代码语言:javascript
复制
  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高中赛拉。)

但是,再一次,我使用的url中的主机名没有解析为localhost (并且在其他上下文中工作得很好)。

我如何隔离这样的问题?

EN

回答 1

Stack Overflow用户

发布于 2019-01-19 03:57:36

使用环境变量NODE_DEBUG='net,tls,http,https‘运行我的代码,给了我足够的信息来识别(并隔离)这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54241944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档