我正在尝试在我的web应用程序上设置一个搜索按钮,该按钮使用流式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]
感谢您提前提供的帮助!
Twitter正在用"超过用户连接限制"消息来响应请求。这就是E的由来。文本不是有效的JSON对象。