Nodejs Twit 模块在停止流时出错

Nodejs Twit module error on stopping stream

本文关键字:出错 Twit 模块 Nodejs      更新时间:2023-09-26

我正在使用Twit模块在AngularJS应用程序中显示Twitter流。我想提供在用户单击停止按钮时关闭流的选项。

处理

流式处理的脚本:

var Twit = require('twit');
var T = new Twit({
    consumer_key        : 'XXX',
    consumer_secret     : 'XXX',
    access_token        : 'XXX',
    access_token_secret : 'XXX'
});
function streamingHashtag(streamBool)
{    
  var stream = T.stream('statuses/filter', { track: 'test' });
  stream.on('tweet', function (tweet) {
    console.log(tweet);
  });
  stream.on('disconnect',function(disconnectMessage){
    stream.stop();
  });
  if(streamBool == false){
    stream.stop();
    console.log('Stream stopped by user');
  }
}

按下按钮停止控制台后,将输出以下错误,流继续:

message: "Cannot call method 'abort' of undefined", stack: "TypeError: Cannot call method 'abort' of undefined…es'connect'lib'middleware'methodOverride.js:37:5)"}
message: "Cannot call method 'abort' of undefined"
stack: "TypeError: Cannot call method 'abort' of undefined?    at OARequest.stop ([localhost]'node_modules'twit'lib'oarequest.js:110:16)?    at Object.streamingHashtag ([localhost]'server'library'twitter.js:40:10)?    at exports.twitterStream ([localhost]'server'routes'index.js:11:10)?    at callbacks ([localhost]'node_modules'express'lib'router'index.js:161:37)?    at param ([localhost]'node_modules'express'lib'router'index.js:135:11)?    at pass ([localhost]'node_modules'express'lib'router'index.js:142:5)?    at Router._dispatch ([localhost]'node_modules'express'lib'router'index.js:170:5)?    at Object.router ([localhost]'node_modules'express'lib'router'index.js:33:10)?    at next ([localhost]'node_modules'express'node_modules'connect'lib'proto.js:190:15)?    at Object.methodOverride [as handle] ([localhost]'node_modules'express'node_modules'connect'lib'middleware'methodOverride.js:37:5)"

我正在运行最新版本(package.json 说"版本":"1.1.11"),经过调查,我在 OARequest 中发现了指向 abort() 的停止函数.js该函数

我在这里做错了什么?

对于任何遇到相同错误的人,为了将来参考,现在我已经找到了答案,让我回答我自己的问题。该错误指出,当我确定我声明了变量时,未定义时没有方法"中止"。

该错误是由调用函数两次引起的,从而创建了一个旧变量不可用的新作用域。在函数外部定义变量全局修复了此问题。