Smashing Node.js: JavaScript Everywhere by Guillermo Rauch

Smashing Node.js: JavaScript Everywhere by Guillermo Rauch

Author:Guillermo Rauch
Language: eng
Format: epub
Publisher: Wiley
Published: 2012-08-07T16:00:00+00:00


module.exports = function search (query, fn) {

request.get(‘http://search.twitter.com/search.json’)

.data({ q: query })

.end(function (res) {

if (res.body && Array.isArray(res.body.results)) {

return fn(null, res.body.results);

}

fn(new Error(‘Bad twitter response’);

});

};

Similar to the other superagent examples, you want to make a GET request, sending the querystring data field q with the search term. The URL superagent hit for the search

term hello world will be something like http://search.twitter.com/search.json?q=hello+world.

In the response handler, you’re actively making sure that the request works and satisfies our expectations completely. Instead of looking at HTTP status codes and verifying you got 200 instead of something else, it’s smarter to ask the question: did I get an array of tweets as part of the response?

If you remember from Chapter 7, if superagent gets a JSON response, it will automatically decode it and place its contents as part of the res.body variable. Since the Twitter API responds with a JSON object with a key results containing an array of tweets, the following snippet from the code above is all you need for error handling:

if (res.body && Array.isArray(res.body.results)) {

return fn(null, res.body.results);

}

Run

Run the server and point your browser to http://localhost:3000 (see Figure 9-2) and try out a search term (see Figure 9-3).



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.