我还在学习nodejs,正在听daniel shiffman关于如何设置twitter api以及如何从中获取数据的视频。 现在,代码正在运行,我正在收回数据,但这一切都发生在终端上。 我想要做的是在我的浏览器中显示twitter数据并且不确定如何做到这一点。我试着寻找它,但没有得到很多帮助。 所以,我只是尝试做我知道的任何事情并且它有效,因此我仍然不确定我编写的代码是正确的方法。 我很想知道某处是否有错误,或者我是否应该采取其他方式。
无论如何,这里是代码
var http = require('http');
var express = require('express');
var app = express();
var port = 8080; // Use 8080 for local development because you might already have apache running on 80
console.log('The bot is starting');
var Twit = require('twit');
var config = require('./config');
console.log(config);
var T = new Twit(config);
var params ={
q:'spider',
count:5
}
T.get('search/tweets', params, gotData);
function gotData(err, data, response) {
var tweets = data.statuses;
app.get('/',function(req,res){
req=params;
var tweetz='';
for(var i=0;i<tweets.length;i++){
console.log(tweets[i].text+'================================');
tweetz = '<p>'+ tweetz+tweets[i].text+'</p>';
}
res.send(tweetz);
});
}
app.listen(port, function () {
console.log(`app listening on port ${port}!`);
});
答案 0 :(得分:1)
您所犯的错误是在回调中声明app.get
。
app.get("/", function....)
是响应GET
请求的路由,这意味着每当用户请求“/”时,都会调用function(req, res)
的回调。
所以代码应该是:
app.get("/", function(req, res) {
// User requested for "/" route, now get tweets
T.get('search/tweets', params, function(err, data) {
//Tweets received, now send the tweets to the user
var tweets = data.statuses;
return res.send(tweets);
})
})
然后转到http://localhost:8080/
它应该可以。