スライドショー

【Node.js入門】requestモジュールでGET / POST通信する方法!

こんにちは、ライターのマサトです。今回は、Node.jsのrequestモジュールを使ったHTTP通信について学習をしていきましょう!

この記事では、

  • requestモジュールとは?
  • requestモジュールの使い方
  • requestでJSONを扱う方法
  • request-promiseによる通信方法

というように、基本的な内容から応用的な使い方に関しても解説していきます。この記事で、requestモジュールをしっかり学習して自分のスキルアップを目指しましょう!

requestモジュールとは?

まずは、requestモジュールについて基本的な知識から身に付けていきましょう!

requestモジュールを使うと、標準のhttpモジュールを使うよりも簡単で理解しやすい記述でHTTP通信を行うことができます。一般的にはcreateServer()メソッドを使って記述しますが、requestを使うとオプションを設定するだけで簡潔に書けるのが特徴です。

また、Promiseに対応したrequestモジュールも公開されているので本記事で合わせてご紹介しますので、ぜひ参考にしてみてください!

requestモジュールの使い方

この章では、requestモジュールの基本的な使い方について見ていきましょう!一般的な構文から実際のプログラミング手法について学んでいきます。

基本的な構文と書き方について

まずは、もっとも基本となる書き方について見ていきたいのですが、最初にrequire()でモジュールが使えるようにしておきましょう!

var request = require('request');

requestモジュールの特徴として、さまざなオプション設定を記述するだけで簡単に利用できるという点があります。

var options = {
	url: アクセスする先のアドレス,
	method: 通信の種類
	・
	・
	・
}

この例では、通信する先のアドレスと種類(GET / POSTなど)を記述しています。もちろん他にもヘッダー情報やPOSTする時のデータなど、さまざまなオプションを付与することが可能です。あとは、request()メソッドを以下のように実行するだけで完了です!

request(options, function (error, response, body) { })

第1引数の「options」には先ほど作成したオプションが設定でき、コールバック関数に実行したい処理を記述します。一般的なhttpモジュールでcreateServer()メソッドを使うよりも、かなりシンプルに記述できるのが分かりますね。

GET・POST通信を行う方法

今度は、一般的によく使う「GET / POST」通信をプログラミングしてみましょう!例えば、当ブログにGET通信するには次のように記述します。

var options = {
    url: 'https://www.sejuku.net/blog/',
    method: 'GET'
}



request(options, function (error, response, body) {

    console.log(body);

})

この例では、当ブログのアドレスと通信の種類を示すGETをオプションに設定しています。そして、request()にオプションを指定してコールバック関数の「body」を出力することで当ブログのHTMLを出力しているわけです。

また、POST通信もほとんど同じように利用することが可能です!

var options = {
    url: 'https://www.sejuku.net/blog/sample',
    method: 'POST',
    form: {"name":"太郎"}
}



request(options, function (error, response, body) {

    console.log(body);


})

この例では、通信の種類を「POST」に変更して新しく「form」プロパティを追加しています。これを追加することで、POST通信で一緒に送信するデータを指定できるので覚えておきましょう!

requestでJSONを扱う方法

requestモジュールを使うとJSONデータも効率的に扱えるので、合わせてご紹介しておきます!

例えば、アクセス先のサーバーからJSONファイルを取得したいとします。普通に記述すると以下のようになりますね。

var options = {
    url: https://www.sejuku.net/blog/sample.json',
    method: 'GET'
}

これでもrequest()メソッドを使ってJSONデータを取得できるのですが、文字列データなのでJSONにパースする必要があります。

そこで、オプション設定に「json」プロパティを追加してみましょう!

var options = {
    url: https://www.sejuku.net/blog/sample.json',
    method: 'GET',
    json: true
}

「json」をtrueにするだけで、自動的に取得したJSONデータをパースしてJavaScriptで扱いやすい形式にしてくれるわけです。

request-promiseによる通信方法

requestモジュールには、非同期処理を効率よく記述できるPromiseに対応したバージョンもあるのでご紹介しておきます。まずは、require()でモジュールが使えるように準備しておきましょう!

var request = require('request-promise');

基本的にはrequestモジュールがベースになっているので、使い方自体はほとんど同じように扱えます。例えば、以下のようにオプションを作成します。

var options = {
    url: https://www.sejuku.net/blog',
    method: 'GET'
}

そして、オプションを指定してGET通信処理を次のように記述します。

request(options)
.then(function (body) {

        console.log(body);

})
.catch(function (err) {

        console.log(err);

});

Promiseが扱えるので、「then」「catch」を使って簡潔に処理が記述できるのが分かりますね。ちなみにですが、Promiseについてまだよく分からないという方は次の記事で基本から体系的に解説しているので参考にしてみてください!

【JavaScript入門】誰でも分かるPromiseの使い方とサンプル例まとめ!
更新日 : 2020年3月13日

まとめ

今回は、簡単にHTTP通信が記述できるrequestモジュールについて学習しました。最後に、もう一度ポイントをおさらいしておきましょう!

  • requestモジュールはオプションを設定することで簡単に処理を記述できる
  • JSONデータを扱う際も自動的にパース処理をしてくれる
  • Promise処理に対応したバージョンも存在する

上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

マサト

マサト

フリーランスのIT系ライターを8年従事。侍ブログ編集部としては、これまで270記事以上の記事を執筆。
独学でJavaScript, Node.js, Linuxを3年学習。個人プロダクトのWebメディア・アプリ作成経験あり。