相关疑难解决方法(0)

与其他客户端中不存在的node.js的ECONNREFUSED错误

我正在httpnode.js客户提出请求,但我收到了ECONNREFUSED错误消息.当我使用我的浏览器制作看似相同的请求时curl(1),它的工作正常

这是节点请求:

var options = {
  host: 'localhost',
  port: 8080,
  path: '/explorers/1.0/agegroup',
  method: 'GET'
};

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log(e);
});

req.end();
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)

但是当我与不同的客户端(curl在这种情况下)做出相同的请求时:

$ curl http://localhost:8080/explorers/1.0/agegroup
{... response JSON ...}
Run Code Online (Sandbox Code Playgroud)

其他说明:

  • 我已尝试将主机更改为www.google.com,将端口更改为80,并且节点成功建立连接

  • 我已经尝试更改服务器的端口,我仍然可以向所有客户端发出请求但node.js(仍然可以ECONNREFUSED)

  • 我正在连接的服务器是CherryPy WSGI服务器.当我尝试连接到nodelocalhost:8080 的服务器时,它运行正常,这会让我认为这是服务器的问题,除了其他客户端使用CherryPy服务器. …

http node.js

25
推荐指数
4
解决办法
4万
查看次数

node.js - 处理TCP套接字错误ECONNREFUSED

我正在使用带有socket.io的node.js来让我的网页访问由TCP套接字提供的字符数据.我对node.js很新.

用户 ----> 网页 < - (socket.io) - > node.js < - (TCP) - > TCP服务器

该代码简洁明了:

io.on('connection', function (webSocket) {
    tcpConnection = net.connect(5558, 'localhost', function() {});

    tcpConnection.on('error', function(error) {
        webSocket.emit('error', error);
        tcpConnection.close();
    });

    tcpConnection.on('data', function(tcpData) {
        webSocket.emit('data', { data: String.fromCharCode.apply(null, new Uint8Array(tcpData))});
    });
});
Run Code Online (Sandbox Code Playgroud)

在正常情况下一切正常,但我不能保证TCP服务器会一直存在.如果不是,TCP堆栈将ECONNREFUSED返回到node.js - 这完全是预期的,我需要优雅地处理它.目前,我看到:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)
Run Code Online (Sandbox Code Playgroud)

......整个过程结束.

我已经做了很多寻找解决方案; 大多数点击似乎来自程序员,他们首先询问为什么会收到ECONNREFUSED - 建议只是为了确保TCP服务器可用.没有讨论处理失败案件.

这个帖子 - Node.js connectListener仍然调用socket错误 - 建议为'error'事件添加一个处理程序,就像我在上面的代码中所做的那样.这正是我希望它工作的方式......除了它(对我来说),我的程序不会陷入ECONNREFUSED.

我已经尝试过RTFM,而http://nodejs.org/api/net.html#net_event_error_1上 …

sockets tcp node.js

19
推荐指数
1
解决办法
3万
查看次数

学习异常处理模式

在编程中总是让我神秘的一件事是使用适当的异常处理.Code Complete指出,通常90%的代码都专注于处理异常.虽然我知道实现基本异常的基础知识,但我还没有找到这样一个重要主题的良好的一般资源.

我正在寻找好的资源(不一定与特定的语言绑定)来学习如何实现良好的异常处理技术.stackoverflow上的大多数异常处理主题似乎都集中在特定语言的特定情况.你的建议是什么?

exception-handling

5
推荐指数
2
解决办法
2833
查看次数

标签 统计

node.js ×2

exception-handling ×1

http ×1

sockets ×1

tcp ×1