Javascript 正在将数据从节点js模块获取到server.js文件

Javascript 正在将数据从节点js模块获取到server.js文件,javascript,json,node.js,express,Javascript,Json,Node.js,Express,我试图从节点模块中的函数获取数据,该函数返回一个json对象,并在我的server.js文件中的路由器中显示json对象 我正试图将其导出如下: // Export the function exports.getTweets = function() { var tweetResult = {}; twitter.get( '/statuses/user_timeline.json', { scre

我试图从节点模块中的函数获取数据,该函数返回一个json对象,并在我的server.js文件中的路由器中显示json对象

我正试图将其导出如下:

    // Export the function
    exports.getTweets = function() {
        var tweetResult = {};
        twitter.get(
            '/statuses/user_timeline.json',
            { screen_name: 'twitter', count: 5},
            function (error, tweets) {
                tweetResult = tweets;
            }
        );
        return tweetResult;
    };
这是我的server.js文件,其中的路由应该返回json对象

tweets      = require("./twitter_stream.js"),

// set up the route for the json object
app.get("/tweets.json", function (req, res) {
    console.log(tweets.getTweets());
});

我只能得到一个空对象。

您需要向
getTwitter
函数传递回调以接收twitter结果。当代码
返回tweetResult时,变量
tweetResult
null被调用

请检查以下代码,了解如何在代码中使用回调:

exports.getTweets = function(callback) {
        twitter.get(
            '/statuses/user_timeline.json',
            { screen_name: 'casperpschultz', count: 5},
            function (error, tweets) {
                //invoke the callback function passing the tweets  
                callback(tweets);

            }
        );
    };
调用传递回调函数的getTweets函数的代码:

app.get("/tweets.json", function (req, res) {
    //invoke getTweets passing a callback function by parameter
    tweets.getTweets(function(tweets){
         console.log(tweets);
     });
});
js以异步方式与回调一起工作,这是一个很好的参考,可以解释它