我创建了一个库,用于发送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使用方法将调用“上完成”只有一次,第二次使用方法会“上完整的”呼叫两次等等....
我究竟做错了什么?
感谢何塞
我用这一个挣扎也是如此。 但并没有在互联网上找到答案。 我终于弄明白,虽然。 它是由“完整”事件引起被注册每次你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
希望这有助于。
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发布,它似乎包含的修补程序。
这是因为您可以将新的事件在每次调用。 尝试先解除事件。
在一个JSON请求您的回调处理程序发生异常也可能导致此行为。
看到这里的拉请求应该是一个解决方案: https://github.com/danwrong/restler/pull/94
请查看V3.2.2。 升级你的package.json:
npm install restler --save
它解决了这个问题对我来说。