0

我有一个关于 node.js rest 客户端 restify 的问题。所以我在服务器上发出请求,我得到了一个响应(它在控制台上打印得很好)但是当我关闭我的服务器时,我的其余客户端出现错误:

events.js:72
        throw er; // Unhandled 'error event
              ^
Error: read ECONNRESET
    at errnoException (net.js:901:11
    at TCP.onread (net.js:556:19

我的代码很简单:

var restify = require('restify');

// Creates a JSON client
var client = restify.createJsonClient({
  url: 'http://127.0.0.1:3000/api/check'
});

client.get('', function(err, req, res, obj) {    
  console.log(obj);  // print response
});

我的服务器也是用 node.js 编写的,并使用 express 框架和标准 API,可以在生产中运行数月,所以我怀疑这是问题所在。看起来客户端没有关闭与服务器的 TCP 连接,但在 restify 教程中我没有找到执行此操作的说明。

感谢您提供任何信息!

4

1 回答 1

0

添加agent: false到您的 json 客户端创建中:

var client = restify.createJsonClient({
    url: 'http://127.0.0.1:3000/api/check',
    agent: false
});

这样 TCP 连接每次都会关闭,如果服务器在收到响应后关闭,您将不会收到错误消息。

于 2014-01-30T12:42:27.563 回答