UNPKG

learnyounode

Version:

Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.

42 lines (27 loc) 2.14 kB
1つ目の引数として指定された URL に、 HTTP で GET を送信する (※)アプリを書いてください。 そのリクエストに対するレスポンスを`"data"`イベントで受け取り、受け取った全ての文字列を**1つずつ**改行で区切ってコンソールに書き出してください。 ※ これからは「GET リクエスト」と記述します。 ---------------------------------------------------------------------- ## ヒント この例題のためには `http` の Node.js モジュールが必要です。 `http` モジュールのドキュメントは、このリンクをブラウザで見てください: {rootdir:/docs-nodejs/http.html} `http.get()` という関数は簡単に GET リクエストを送信するショートカットです。解決方法をシンプルするのに役に立つと思います。 `http.get()`1つ目の引数は、GET リクエストの URL です。2つ目はコールバック関数です。 ```js http.get(url, callback) ``` `http` はよくあるイディオム `(error, result)` と違って以下のようなコールバック関数となっています: ```js function callback (response) { /* ... */ } ``` `response` のオブジェクトは Node.js の **Stream** です。Stream はイベントを発行するオブジェクトと考えてよいです。 Stream における大切な3つのイベントは: `data``error``end` です。 各イベント時にデータを受け取る為には、次のようにリスナを設定します。 ```js response.on('data', function (data) { /* ... */ }) ``` `data` イベントは処理できるデータチャンク(※)が現れたときに発行されます。チャンクのサイズはデータによって変わります。 ※ データの一部分。Stream ではこれが断続的に提供されます。 `http.get()``response` の Stream オブジェクトには `setEncoding()` という関数があります。 それを `utf8` という値を使って呼ぶとデータイベントの `Buffer` の代わりに文字列が渡ってきます。