ホームページ  >  記事  >  ウェブフロントエンド  >  nodejsリクエストリクエスト

nodejsリクエストリクエスト

PHPz
PHPzオリジナル
2023-05-08 09:58:381187ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。