这是使用nodejs将从twitter api收到的数据发送到浏览器的正确方法吗?

时间:2016-10-26 05:41:02

标签: node.js api twitter browser

我还在学习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}!`);
});

1 个答案:

答案 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/它应该可以。