Nodejs和Twitter API 1 – res.on函数

Newb在24小时内通过Node.js工作。 这个挑战来自JSON API的第15章。

原代码:

var http = require('http') , data = "" , tweets = ""; var options = { protocol: 'http:' , host: 'search.twitter.com' , port: 80 , path: '/search.json?q=%23node.js' }; var request = http.get(options, function(res) { res.on('data', function(chunk){ data += chunk; }); res.on('end', function() { tweets = JSON.parse(data); console.log(tweets); for (var i= 0; i< tweets.results.length; i++) { console.log(tweets.results[i].text) } }); res.on('errors', function(e){ console.log("There was an error: " + e.message) }); }); 

我的问题涉及“res.on(…)”。 我认为这意味着,当Twitter服务器响应一个string,“数据”,然后执行该function。 但是我读了Twitter API(v1 – https://dev.twitter.com/docs/api/1 ),没有看到任何支持这种信念的东西。 那么res.on(…)究竟是如何工作的呢? TIA的任何指导。

res是一个res.on事件发射器, res.on为一个事件挂钩一个callback。 您使用的对象res是Node http response对象,与Twitter提供的REST API无关。 Node客户端向http服务器发送请求(无论是Twitter还是Google或者Stackoverflow)。 当服务器响应时, res对象发出相应的事件。

你可以试试

 , host: 'stackoverflow.com', , port: 80, , path: '/questions/18149079/nodejs-and-twitter-api-1-res-on-function' 

 res.on('end', function() {console.log(data)}); 

并检查出生成的HTML数据:P