HTTPリクエストをノードにする5つの方法.JSエディション


どのようにHTTPリクエストを圧倒的に感じることができるライブラリを利用可能な数十人、各ソリューションをより効率的に最後よりも主張している.バンドルのサイズや開発者の経験に焦点を当てながら、いくつかのライブラリは、クロスプラットフォームのサポートを提供します.このポストでは、ノード内でこのコア機能を達成するために最も人気のある方法の5つを調査します.js
コードのデモは、リングのテーマAPIを使用します.one API to rule them all , 単にすべての相互作用のために私は偶然、この素晴らしいシリーズの最後の週末の全体を見た.

必要条件


保証するnpm and Node.js あなたのマシンにインストールされて、あなたは行くのが良いです!
前にジャンプを好む?このポストは次のようになります.
  • HTTP (The Standard Library)
  • SuperAgent
  • Axios
  • Node Fetch
  • Got
  • HTTP (標準ライブラリ)


    標準ライブラリにはデフォルトが付属していますhttp モジュールです.このモジュールは外部のパッケージでバルクを追加する必要なしにHTTPリクエストを作成するために使用できます.しかし、モジュールが低レベルであるので、それは最も開発者フレンドリーではありません.また、使用する必要がありますasynchronous streams HTTPリクエストのためのasync/wait機能がこのライブラリで使用することができないので、データをチャンキングするために.応答データを手動で解析する必要があります.
    標準の使用方法を次のコードに示しますhttp ライブラリを作成するGET リングシリーズの主人公の名前を取得するリクエスト
    const https = require('https');
    
    https.get('https://the-one-api.dev/v2/book?api_key=MY_KEY', (resp) => {
      let data = '';
    
      // a data chunk has been received.
      resp.on('data', (chunk) => {
        data += chunk;
      });
    
      // complete response has been received.
      resp.on('end', () => {
        console.log(JSON.parse(data).name);
      });
    
    }).on("error", (err) => {
      console.log("Error: " + err.message);
    });
    

    スーパーエージェント


    SuperAgent は、Ajaxリクエストをノードに作成するための小さなHTTPリクエストライブラリです.jsとブラウザスーパーエージェントが持つ事実dozens of plugins キャッシング防止、サーバーのペイロード、または接頭辞や接尾辞のURLのようなものを達成するために利用可能な、かなり印象的です.また、独自のプラグインを書くことで機能を拡張できます.スーパーエージェントも便利にあなたのためのJSONデータを解析します.

    The browser-ready, minified version of SuperAgent is only 6KB (minified and gzipped) and very popular amongst developers.


    NPMからスーパーエージェントをインストールするには、次のコマンドを入力してください.
    npm install superagent --save
    
    スーパーエージェントを使用してリクエストを作成する方法を次のコードスニペットに示します.
    const superagent = require('superagent');
    
    (async () => {
      try {
        const queryArguments = {
          api_key: 'MY_KEY'
        }
    
        const response = await superagent.get('https://the-one-api.dev/v2/book').query(queryArguments)
        console.log(response.body.name);
      } catch (error) {
        console.log(error.response.body);
      }
    })();
    

    アクシオス


    Axios ブラウザとノードのための約束ベースのHTTPクライアントです.jsスーパーエージェントのように、JSON応答を自動的に解析します.それをさらに設定するのは、同時リクエストを行う能力ですaxios.all —これは、例えば、リングの映画や書籍の主から同時に引用符を取得するための効率的な方法になります.
    NPMからaxiosをインストールするには、次のコマンドを入力してください.
    npm install axios --save
    
    次のコードスニペットで、Axiosを使用して要求を表示する方法を示します
    const axios = require('axios');
    
    (async () => {
      try {
        const response = await axios.get('https://the-one-api.dev/v2/book?api_key=MY_KEY')
        console.log(response.data.name);
      } catch (error) {
        console.log(error.response.body);
      }
    })();
    

    ノード取得


    Node Fetch フェッチAPIをノードに持ってくる軽量モジュールです.jsFETCH(ブラウザまたはノードフェッチを介して)を使用すると、.then and await 読み取り可能なストリームをJSONに変換するための構文では、以下のスニペットで示されているように、データのビットがより微妙なので、不正確な中間変数を必要とせずにJSONを持っています.また、リダイレクトの制限、応答サイズの制限、トラブルシューティングの明示的なエラーなどの便利な拡張子が、ノードフェッチで使用できるようになります.
    NPMからノードフェッチをインストールするには、次のコマンドを入力します.
    npm install node-fetch --save
    
    次のコードスニペットで、ノードフェッチを使用して要求を表示する方法を示します
    const fetch = require('node-fetch');
    
    (async () => {
      try {
    
        const data = await fetch('https://the-one-api.dev/v2/book? 
        api_key=MY_KEY').then(r => r.json())
    
        console.log(data.name);
      } catch (error) {
        console.log(error.response.body);
      }
    })();
    

    得た


    Got ノードの別の直感的で強力なHTTPリクエストライブラリです.jsそれは、当初人気のために軽量代替としてつくられましたRequest (現在は推奨されない)パッケージです.他のライブラリと比較する方法を確認するにはdetailed chart .
    AxiosとSuperAgentと異なり、GETはデフォルトでJSONを解析しません.注意{ json: true } この機能を達成するために以下のコードスニペットの引数として追加されました.

    For modern browsers and Deno usage, the folks behind Got produced Ky. Ky is a tiny HTTP client with no dependencies based on the browser Fetch API.


    NPMからGETをインストールするには、次のコマンドを入力してください.
    npm install got --save
    
    GODを使用してリクエストを作成する方法を次のコードスニペットに示します.
    const got = require('got');
    
    (async () => {
      try {
        const response = await got('https://the-one-api.dev/v2/book?api_key=MY_KEY', { json: true });
        console.log(response.body.name);
      } catch (error) {
        console.log(error.response.body);
      }
    })();
    

    ラッピング


    このポストでは、HTTPリクエスト機能を実現する方法を示しました.js
    他の言語もHTTPリクエストに取り組むためにライブラリの無数を持っています.次に何の言葉を書きたいですか?私たちを知っている!私たちはあなたの考えを聞いたり、またはVonage上の任意の質問に答えるのが大好きだDeveloper Community Slack .
    郵便5 Ways To Make HTTP Requests In Node.js – 2020 Edition 最初に現れたVonage Developer Blog .