我如何在节点中捕获“错误:连接ECONNREFUSED”而不会导致节点死亡?

时间:2019-07-19 17:30:35

标签: node.js

我有以下代码...

http.get({
    host: ipAddress,
    port: 1199
}, (response)=>{
   ...
   response.on("error", ()=>{...});
});

现在我知道ipAddress为null,并且在1199上没有任何运行,因此我预计会出现错误。

  

错误:连接ECONNREFUSED 127.0.0.1:1199

但是,当我尝试捕获时,它不能捕获错误,所以...

try{
    http.get({
        host: ipAddress,
        port: 1199
    }, (response)=>{
       ...
       response.on("error", ()=>{...});
    });
} catch(ex){
   console.log("error");
}

我仍然没有看到日志中的错误……

  

错误:连接ECONNREFUSED 127.0.0.1:1199

那我该如何捕获错误?

1 个答案:

答案 0 :(得分:1)

error侦听器放置在ClientRequest调用返回的http.get上。

http.get({
    host: ipAddress,
    port: 1199
}, (response)=>{
   ...
}).on("error", ()=>{...});

https://nodejs.org/api/http.html#http_class_http_clientrequest https://nodejs.org/api/http.html#http_http_get_options_callback