Node.js は、サーバー側で JavaScript コードを実行できる、非常に人気のある JavaScript 実行環境です。 Node.js は開発速度が速く、パフォーマンスが良く、分散システムに適しているため、Web 開発やクラウド コンピューティングの分野で非常に幅広い用途があります。この記事では、Node.js をクライアントとして使用してサーバーに HTTP リクエストを行う方法を紹介します。
Node.js では、組み込みの http モジュールを使用して HTTP リクエストを行うことができます。 http モジュールは、HTTP リクエストを簡単に作成して送信し、応答データを処理できます。以下は、http モジュールを使用して HTTP GET リクエストを発行する方法を示す簡単な例です。
const http = require('http'); http.get('http://www.example.com', (res) => { console.log(`Got response: ${res.statusCode}`); res.on('data', (chunk) => { console.log(`Received data: ${chunk}`); }); }).on('error', (e) => { console.error(`Error: ${e.message}`); });
コードでは、http.get() メソッドは URL 文字列とコールバック関数をパラメータとして受け取ります。コールバック関数が呼び出されると、応答オブジェクトがその最初のパラメータ res に渡されます。 res オブジェクトの statusCode 属性にアクセスすることで応答ステータス コードを取得し、res オブジェクトの data イベントをリッスンすることで応答データを受信できます。
http.get() メソッドに加えて、http モジュールには http.request() メソッドも用意されており、HTTP POST リクエストとカスタム リクエスト ヘッダーを処理できます。 POST リクエストとカスタム リクエスト ヘッダーの例を次に示します。
const http = require('http'); const options = { hostname: 'www.example.com', port: 80, path: '/post', method: 'POST', headers: { 'Content-Type': 'application/json' } }; const req = http.request(options, (res) => { console.log(`statusCode: ${res.statusCode}`); res.on('data', (d) => { process.stdout.write(d); }); }); req.on('error', (error) => { console.error(error); }); req.write(JSON.stringify({ hello: 'world' })); req.end();
コードでは、http.request() メソッドを使用して HTTPRequest オブジェクトを作成し、いくつかのリクエスト オプションを設定します。このうち、headers オプションでは、要求された Content-Type が application/json であることを指定します。
次に、req.write() メソッドを使用して、リクエスト本文にデータを書き込みます。最後に、req.end() メソッドを呼び出してリクエスト操作を終了します。
上記では、http モジュールをクライアントとして使用してサーバーに HTTP リクエストを行う方法を説明しました。実際のアプリケーションでは、さまざまなシナリオでさまざまなタイプの HTTP リクエストを開始する必要がある場合があります。たとえば、ファイルをアップロードするために multipart/form-data リクエストを送信する必要がある場合や、フォーム データを送信するために application/x-www-form-urlencoded リクエストを送信する必要がある場合があります。この場合、request や axios などのサードパーティ モジュールを使用して操作を簡素化できます。
リクエスト モジュールは使いやすく強力で、複数の HTTP リクエスト タイプとカスタム リクエスト ヘッダー、Cookie などをサポートしています。次に、リクエスト モジュールの使用例を示します。
const request = require('request'); request('http://www.example.com/', function (error, response, body) { console.log('error:', error); console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
コードでは、request() メソッドを使用して HTTP GET リクエストを発行し、www.example.com の応答を取得します。コールバック関数では、response.statusCode を通じて応答ステータス コードにアクセスし、body を通じて応答コンテンツにアクセスできます。
axios モジュールも非常に使いやすく強力で、Promise のような then() メソッドと catch() メソッドを備えています。 axios モジュールを使用した例を次に示します。
const axios = require('axios'); axios.get('http://www.example.com/') .then(function (response) { console.log('statusCode:', response.status); console.log('headers:', response.headers); console.log('data:', response.data); }) .catch(function (error) { console.log('error:', error.message); console.log('response:', error.response.data); });
コードでは、axios.get() メソッドを使用して HTTP GET リクエストを作成し、then() 関数で応答を処理します。リクエストが失敗した場合は、catch() 関数でエラーを処理します。 response.status、response.headers、response.data の各プロパティを通じて、それぞれ応答ステータス コード、応答ヘッダー、応答コンテンツにアクセスできます。
要約すると、Node.js をクライアントとして使用して HTTP リクエストを行うのは非常に簡単です。最も単純なケースでは、組み込みの http モジュールを使用して HTTP GET リクエストを送信できます。マルチパート/フォームデータリクエストやカスタムリクエストヘッダー/リクエストボディの送信など、より複雑なタスクの場合は、リクエストや axios などのサードパーティモジュールを使用して操作を簡素化できます。
以上がnodejsクライアントリクエストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。