Node.js を使用してデータを取得するための HTTP 要求を行う

Shraddha Paghdar 2023年10月12日
Node.js を使用してデータを取得するための HTTP 要求を行う

今日の記事では、HTTP リクエストを作成し、node.js を使用してデータを取得する方法を学びます。

Node.js を使用してデータを取得するための HTTP リクエスト

node.js の組み込みモジュールを使用して HTTP リクエストを送信できます。 これらの標準モジュールはコールバックを使用して、要求を処理し、データを取得します。

Axiosnode-fetchsuper agent、およびその他のモジュールを使用して HTTP リクエストを送信することもできます。 HTTPS モジュールは、request 関数を使用して呼び出しを行います。

サーバー URL のホスト名ポート番号、パス、および要求の種類を提供するオプション オブジェクトは、この要求関数に引数として渡されます。

callback 関数は 2 番目の引数です。 リクエストが処理されると、この callback 関数がアクティブになります。 HTTPS モジュールには、要求を処理して要求されたデータを取得できるいくつかのイベントがあります。

たとえば、リクエストを終了するには、エラーが発生した場合に req.end()req.on('error') を使用します。 リクエストを受け取った後、サーバーはデータを処理し、チャンクでレスポンスを返します。

res.on('data')res.on('end') などの応答関連のイベントが発生すると、応答を取得できます。 end イベントで完全な応答が返されたら、 data イベントでデータのチャンクを連結した後、それをコンソールに出力できます。

https.requestasynchronous であるため、リクエストが完了する前にサーバーの応答を読み取ろうとすると、undefined が返されます。 以下の簡単な例で上記のプロセスを理解しましょう。

コード例:

const https = require('https');
const options = {
  hostname: 'jsonplaceholder.typicode.com',
  port: 443,
  path: '/posts/1',
  method: 'GET',
};

function submitRequest() {
  const req = https.request(options, res => {
    let outputData = ''
    console.log(`statusCode: ${res.statusCode}`);
    res.on('data', dataChunk => {
      outputData += dataChunk;
    });
    res.on('end', () => {
      console.log('outputData', outputData);
    });
  });
  req.on('error', error => {
    console.error('error', error);
  });
  req.end();
}
submitRequest()

上記のコード例では、pathport 番号を指定して、モック サーバーに GET リクエストを送信します。 リクエストを取得してデータを処理した後、サーバーはレスポンスをフラグメント化して送り返します。

end メソッドで応答が完全に返されたら、応答データを連結してコンソールに出力できます。

node.js と互換性のある Replit で上記のコード行を実行します。 次の結果が表示されます。 上記のコードのデモも ここ で見つけることができます。

出力:

statusCode: 200
outputData {
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn