Node.js を使用してデータを取得するための HTTP 要求を行う
今日の記事では、HTTP リクエストを作成し、node.js を使用してデータを取得する方法を学びます。
Node.js を使用してデータを取得するための HTTP リクエスト
node.js の組み込みモジュールを使用して HTTP リクエストを送信できます。 これらの標準モジュールはコールバックを使用して、要求を処理し、データを取得します。
Axios
、node-fetch
、super agent
、およびその他のモジュールを使用して HTTP リクエストを送信することもできます。 HTTPS モジュールは、request
関数を使用して呼び出しを行います。
サーバー URL のホスト名
、ポート
番号、パス
、および要求の種類を提供するオプション オブジェクトは、この要求関数に引数として渡されます。
callback
関数は 2 番目の引数です。 リクエストが処理されると、この callback
関数がアクティブになります。 HTTPS モジュールには、要求を処理して要求されたデータを取得できるいくつかのイベントがあります。
たとえば、リクエストを終了するには、エラーが発生した場合に req.end()
と req.on('error')
を使用します。 リクエストを受け取った後、サーバーはデータを処理し、チャンクでレスポンスを返します。
res.on('data')
や res.on('end')
などの応答関連のイベントが発生すると、応答を取得できます。 end イベントで完全な応答が返されたら、 data イベントでデータのチャンクを連結した後、それをコンソールに出力できます。
https.request
は asynchronous
であるため、リクエストが完了する前にサーバーの応答を読み取ろうとすると、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()
上記のコード例では、path
と port
番号を指定して、モック サーバーに 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 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