通过nodejs和twitter api获取最新的推文

我正在尝试使用twitter api和node / express获取最新的5条推文,但是我没有得到任何结果,当我使用.get调用url时

我期望它返回一个JSON对象,当我调用的URL

这里是我的调用代码,从我在其他地方find的启发和答案在这里获取使用node.js和twitterAPI的最新tweets列表

var ntwitter = require('ntwitter'), credentials = require('./credentials.json'), twitter, tweets = {}; // set up our twitter objects twitter = ntwitter(credentials); tweets = twitter.get('/statuses/user_timeline.json', { screen_name: 'twitter', count: 5}); module.exports = tweets; 

目前我遇到这个错误,当我启动服务器

  throw new Error('FAIL: INVALID CALLBACK.'); ^ Error: FAIL: INVALID CALLBACK. at Twitter.get (/home/vagrant/app/node_modules/ntwitter/lib/twitter.js:56:11) at Object.<anonymous> (/home/vagrant/app/twitter_stream.js:10:18) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/vagrant/app/server.js:7:19) at Module._compile (module.js:456:26) 

和我的server.js文件,我需要twitter_stream.js文件

 var express = require("express"), path = require("path"), http = require("http"), bodyParser = require("body-parser"), tweets = require("./twitter_stream.js"), app = express(); // Set the client folder as the default folder app.use(express.static(__dirname + "/client")); // Parse incomming json objects with bodyparser app.use(bodyParser()); // Create the server http.createServer(app).listen(3000); // set up routes app.get("/tweets.json", function (req, res) { // res.json returns the entire object as a JSON file res.json(tweets); }); 

就像一个额外的信息:我从一个stream浪的64位盒子运行节点

一直没有find这方面的信息,所以我可能会处理这个完全错误的。

node.js是asynchronous的。 这意味着函数不只是返回值。

 //nope, asynchronous calls don't just return values. tweets = twitter.get('/statuses/user_timeline.json', { screen_name: 'twitter', count: 5}); 

使用callback:

 twitter.get( '/statuses/user_timeline.json', { screen_name: 'twitter', count: 5} function(error, tweets) { //Looks, tweets are in here! //this function is called a "callback" } ); 

另外,你不能这样做:

 module.exports = tweets; 

把function放在模块中,而不是从互联网上加载数据。 使用一个函数将该数据公开给应用程序的其余部分。