在node.js的restler调用多个响应(Multiple responses on node.

2019-08-31 08:11发布

我创建了一个库,用于发送REST请求:

var rest = require('restler');
module.exports = {
  beginSession: function()
  {
    var options = {
        method: "GET",
        query: {begin_session: '1'}};
    rest.get('http://countly/i', options).
        on('complete', function(data, response){
            console.log('Status: ' + response.statusCode);
        });
  }
};

问题是,我每次使用这个库和通话时间回应,在“上完整的”被多次调用:1使用方法将调用“上完成”只有一次,第二次使用方法会“上完整的”呼叫两次等等....

我究竟做错了什么?

感谢何塞

Answer 1:

我用这一个挣扎也是如此。 但并没有在互联网上找到答案。 我终于弄明白,虽然。 它是由“完整”事件引起被注册每次你rest.get()被调用。

我的解决办法是使用。一旦()代替。对()。 例如:

var rest = require('restler');
rest.get('url_to_fetch').once('complete', function(rtn, rsp){
     ....blah blah....
});
// refer here http://nodejs.org/api/events.html#events_emitter_once_event_listener

希望这有助于。



Answer 2:

TL; DR:在restler错误,快速修复,直到NPM更新:增加混帐师傅package.json

这里真正的问题是,在节点中的某些更改事件API 0.10结果restler再烧制旧事件侦听器中所描述https://github.com/danwrong/restler/issues/112 。

八月的一端固定在https://github.com/danwrong/restler/pull/113 。 虽然我们等待一个合适的NPM发布它通过使用当前的git头对我的作品。

"restler": "git://github.com/danwrong/restler.git#9d455ff14c57ddbe263dbbcd0289d76413bfe07d"

免责声明:我不知道什么是在这个版本中损坏或为什么它尚未公布。 我没有走线槽的问题或diff文件自去年发布一探究竟。

UPDATE 2014年8月:有,因为那么NPM发布,它似乎包含的修补程序。



Answer 3:

这是因为您可以将新的事件在每次调用。 尝试先解除事件。



Answer 4:

在一个JSON请求您的回调处理程序发生异常也可能导致此行为。

看到这里的拉请求应该是一个解决方案: https://github.com/danwrong/restler/pull/94



Answer 5:

请查看V3.2.2。 升级你的package.json:

npm install restler --save

它解决了这个问题对我来说。



文章来源: Multiple responses on node.js restler call