Twitter stream.on Unexpected Token E

时间:2014-09-03 00:21:29

标签: javascript ajax node.js express twitter-streaming-api

我正在尝试在我的网络应用程序上设置一个搜索按钮,该搜索按钮使用流媒体API检索所有Twitter推文和搜索输入。

这是我的客户端代码: index.ejs

<form class="navbar-form navbar-left" role="search">
  <div class="form-group">
    <input class="form-control" id="searchValue" placeholder="Search" type="text">
      <button type="submit" class="btn btn-success" id="searchButton">
        <span class="glyphicon glyphicon-search"></span>
      </button>
  </div>
</form>

search.js

$(document).ready(function() {
    $("#searchButton").click(function(e) {
        e.preventDefault();
        var searchValue = $("#searchValue").val();
        $.ajax({
            url: "/submit",
            type: "POST",
            data: {
                searchValue: searchValue
            }
        });
     });
 });

最后我的服务器端代码(使用node.js / express)

var util = require('util'),
  twitter = require('twitter');
var twit = new twitter({
  consumer_key: '',
  consumer_secret: '',
  access_token_key: '',
  access_token_secret: ''
});


router.post('/submit', function (req, res) {
  twit.stream('statuses/filter', {
    'track': [req.body.searchValue]
  }, function (stream) {
    stream.on('data', function (tweets) {
      var tweet = tweets.text;
    });
    stream.on('error', function (err) {
      console.log(err);
    });
  });
});

当我使用搜索按钮两次时它会起作用,但是在我第三次输入搜索时它会给我以下错误消息:

[SyntaxError: Unexpected token E]

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

Twitter正在使用“超出用户连接限制”消息来响应请求。这就是E的来源。该文本不是有效的JSON对象。