検索

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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
CSS:同じDOMで複数のIDを使用できますか?CSS:同じDOMで複数のIDを使用できますか?May 14, 2025 am 12:20 AM

いいえ、あなたはusemultipleidsinthemedom.1)idsmustbeuniqueperhtmlspecification、およびusingdusing cansistent browserbehavior.2)useclassesses forstylingmultipleElements、acturtorectorectorectorsectorgettributeurutuureのuseclasses forstyling forstyling forstyling forstyling forstyling forstyling rassess for -destendertantertorectorsutortortortruture

HTML5の目的:より強力でアクセス可能なWebを作成するHTML5の目的:より強力でアクセス可能なWebを作成するMay 14, 2025 am 12:18 AM

html5aimstoenhancewebcapability、makingmoredynamic、interactive、およびaccessible.1)itupportsmultimediaelementslikeand、排除、2)semanticelementionmentionmentionmentionimementsimementionimementsimementsimbrovecessibilityandcodereadability.3)

HTML5の重要な目標:Web開発とユーザーエクスペリエンスの向上HTML5の重要な目標:Web開発とユーザーエクスペリエンスの向上May 14, 2025 am 12:18 AM

html5aimstoenhancewebdevelymentanduserexperiencetheTheTheTheTheTheTheTheTheTructure、multimedieingegration、およびperformanceImprovements.1)semanticelementslike like like ,, and and requrovedababilityandaccessibility.2)andTagsallowseamlessmultimediaemdiding withoutplugins.3)

HTML5:安全ですか?HTML5:安全ですか?May 14, 2025 am 12:15 AM

html5isnotinherecureを使用しますが、featurescanleadtosecurityrisksifmisusedorimpremented.1)usetheSsandboxattribution controlembeddeddeddeddedentandPreventvulnerabilitieslikeclickjacking.2)

HTML5は、古いHTMLバージョンと比較して目標を達成しますHTML5は、古いHTMLバージョンと比較して目標を達成しますMay 14, 2025 am 12:14 AM

html5aimedtoeenhancewebdevelopmentbyintroducingsmanticelements、nativemultimediasupport、改善、およびオフリンの実行可能性、対照、html.1)itintroductuedsemantictagslike、nattructurcturcurean desieand.2)

CSS:IDセレクターを使用するのは悪いですか?CSS:IDセレクターを使用するのは悪いですか?May 13, 2025 am 12:14 AM

IDセレクターを使用することは、CSSでは本質的に悪くはありませんが、注意して使用する必要があります。 1)IDセレクターは、一意の要素またはJavaScriptフックに適しています。 2)一般的なスタイルの場合、クラスセレクターはより柔軟で保守可能であるため、使用する必要があります。 IDとクラスの使用のバランスをとることにより、より堅牢で効率的なCSSアーキテクチャを実装できます。

HTML5:2024年の目標HTML5:2024年の目標May 13, 2025 am 12:13 AM

HTML5'SGOALSIN2024FOCUSONREFINIMINGANDOPTIMIZATION、notnewfeatures.1)強化された拡張性と拡張効率化されたレンダリング.2)

HTML5が改善しようとした主な領域は何ですか?HTML5が改善しようとした主な領域は何ですか?May 13, 2025 am 12:12 AM

html5aimed toemprovewebdevelymentinfourkeyareas:1)multimediasupport、2)セマンティクス構造、3)フォームキャピリティ、および4)offlineandstorageoptions.1)html5introduededelements、simplifiedediaembedingemencemanteddim.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール