Node.js は、Chrome V8 エンジンに基づく JavaScript ランタイム環境で、高性能でスケーラブルな Web アプリケーションを簡単に構築できます。その中でも、リクエスト モジュールは Node.js で非常によく使用されるネットワーク リクエスト モジュールで、Node.js で HTTP/HTTPS リクエストを送信できるようになります。この記事では、リクエスト モジュールの使用方法と、リクエストによって返されたデータの処理方法を紹介します。
1. リクエスト モジュールのインストール
リクエスト モジュールを使用する前に、最初にリクエスト モジュールをインストールする必要があります。コンソールに次のコマンドを入力するだけです:
$ npm install request --save
これにより、リクエスト モジュールがプロジェクトにインストールされ、package.json ファイルに追加されます。
2. GET リクエストの送信
GET リクエストの送信は非常に簡単で、リクエスト モジュールのリクエスト メソッドを使用するだけです。以下は簡単な例です:
const request = require('request'); request('https://api.github.com/users/octocat', (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
この例では、GitHub のユーザー API に GET リクエストを送信し、ユーザー名 octocat のユーザー情報をクエリします。リクエストを送信する方法は非常に簡単で、リクエスト メソッドを呼び出して、リクエストされた URL を渡すだけです。
コールバック関数のパラメータは、error、response、body です。このうち、error はリクエストエラーを表し、response はレスポンスヘッダーやレスポンスコードなどの情報を含むレスポンスオブジェクトを表し、body は API から返されるデータであるレスポンスボディを表します。
3. POST リクエストの送信
POST リクエストの送信も非常に簡単で、リクエスト メソッドの 2 番目のパラメータ (オプション) に特定のリクエスト情報を設定するだけです。以下は、POST メソッドを使用して test という名前のリポジトリを GitHub API に追加する例です。
const request = require('request'); const options = { url: 'https://api.github.com/user/repos', headers: { 'User-Agent': 'request' }, json: true, body: { name: 'test' }, auth: { 'user': 'username', 'pass': 'password' } }; request.post(options, (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('body:', body); });
この例では、URL を https://api.github.com/user/repos に設定します。 , それが倉庫を作成するためのGitHubのAPIです。ヘッダーには User-Agent が含まれており、リクエストがリクエストによって送信されたことを示します。 Body は送信したいデータであり、GitHub 上に作成したいリポジトリの名前です。 json が true に設定されている場合、送信されるデータは JSON 形式であることを意味します。 auth は、ユーザー名とパスワードを含む認証が必要であることを意味します。
4. 応答データの処理
リクエストを送信した後、応答データを処理する必要があります。 JSON 形式のデータの場合は、JavaScript オブジェクトに直接解析できます。以下は、GitHub API によって返された JSON データを JavaScript オブジェクトに解析する例です:
const request = require('request'); request('https://api.github.com/users/octocat', {json: true}, (error, response, body) => { console.log('statusCode:', response && response.statusCode); console.log('login:', body.login); console.log('name:', body.name); });
この例では、オプションの json を true に設定します。これは、応答データを受信するときに、自動的に JSON 連結に解析され、JavaScript オブジェクトに変換されます。コールバック関数では、応答本文のログイン プロパティと名前プロパティに直接アクセスできます。
他の形式のデータの場合は、対応する解析ライブラリを使用して解析できます。たとえば、HTML 形式のデータの場合は、cheerio ライブラリを使用して解析できます。以下は、cheerio を使用して Baidu の検索結果を解析する例です。
const request = require('request'); const cheerio = require('cheerio'); request('https://www.baidu.com/s?wd=nodejs', (error, response, body) => { const $ = cheerio.load(body); $('h3.t a').each((i, el) => { console.log($(el).text()); console.log($(el).attr('href')); }); });
この例では、リクエストを通じて Baidu の検索キーワード nodejs の結果を要求します。 Cheerio の load メソッドを使用して、HTML データを操作可能な DOM オブジェクトに変換します。次に、セレクターを通じて h3.t a 要素を選択し、各要素をループします。ループ内で要素を $() でラップし、要素のテキストと href 属性値を簡単に取得します。
5. まとめ
上記は、Node.js の request モジュールを使用して HTTP/HTTPS リクエストを送信する基本的な方法です。このモジュールを通じて、GET、POST などのリクエストを簡単に送信し、リクエストによって返されたデータを処理できます。このモジュールは非常に便利ですが、使用するときはセキュリティに特別な注意を払う必要があります。特に POST リクエストを送信するときは、リクエスト パラメータを暗号化する必要があります。
以上がnodejsリクエストリクエストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。