learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
36 lines (22 loc) • 1.65 kB
Markdown
Create a file named `http-client.js`.
Write a program that performs an HTTP GET request to a URL provided to you as the first command-line argument. Write the String contents of **each** "data" event from the response to a new line on the console (stdout).
----------------------------------------------------------------------
## HINTS
For this exercise you will need to use the `http` core module.
Documentation on the `http` module can be found by pointing your browser here:
{rootdir:/docs-nodejs/http.html}
The `http.get()` method is a shortcut for simple GET requests, use it to simplify your solution. The first argument to `http.get()` can be the URL you want to GET; provide a callback as the second argument.
Unlike other callback functions, this one has the signature:
```js
function callback (response) { /* ... */ }
```
Where the `response` object is a Node **Stream** object. You can treat Node Streams as objects that emit events. The three events that are of most interest are: "data", "error" and "end". You listen to an event like so:
```js
response.on('data', function (data) { /* ... */ })
```
The "data" event is emitted when a chunk of data is available and can be processed. The size of the chunk depends upon the underlying data source.
The `response` object / Stream that you get from `http.get()` also has a `setEncoding()` method. If you call this method with "utf8", the "data" events will emit Strings rather than the standard Node `Buffer` objects which you have to explicitly convert to Strings.
Check to see if your program is correct by running this command:
```sh
$ {appname} verify http-client.js
```