【问题标题】:node.js rest client chrash after server shutdown服务器关闭后node.js休息客户端崩溃
【发布时间】:2014-01-30 20:42:27
【问题描述】:

我有一个关于 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 教程中我没有找到执行此操作的说明。

感谢您提供任何信息!

【问题讨论】:

  • 我认为如果你在server.on('disconnect',function(){.....});处理它不会显示预定义的错误,如果我错了请纠正我
  • @sumitb.mdi 他在询问客户端。
  • 我不能重复...您正在运行哪个节点版本?

标签: node.js rest tcp restify


【解决方案1】:

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

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

这样TCP连接每次都会关闭,并且在收到响应后关闭服务器也不会出错。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2013-01-18
    相关资源
    最近更新 更多