ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsで他のサーバーをリクエストする方法

Nodejsで他のサーバーをリクエストする方法

PHPz
PHPzオリジナル
2023-04-26 09:06:24772ブラウズ

近年、フロントエンド開発技術は急速に発展し、フロントエンド開発者の責任範囲はますます広範囲になってきています。フロントエンド開発者は、一般的な HTML、CSS、JavaScript に加えて、Node.js などのバックエンド開発スキルも習得する必要があります。

Node.js は、JavaScript 言語をベースにしたオープンソースのクロスプラットフォームオペレーティング環境であり、サーバー側で JavaScript を実行できます。イベント駆動型のノンブロッキング I/O モデルを使用し、リアルタイムのデータ送信をサポートします。したがって、フロントエンドとバックエンドを分離する最新の開発モデルの下では、Node.js はフロントエンド開発者にとって必須のスキルとなっています。

Node.js では、HTTP リクエストを他のサーバーに送信することは一般的な操作であるだけでなく、公式に提供されるコア モジュールの 1 つである「http」モジュールでもあります。このモジュールは、HTTP クライアント要求と HTTP サーバー側 (つまり、Node.js の HTTP サーバー) を実装するための機能を提供します。

この記事では、Node.js の「http」モジュールを使用して他のサーバーに HTTP リクエストを送信する方法を説明します。

  1. http.request() メソッドを使用してリクエストを送信します

http.request(options[, callback])

このメソッドは、 http.ClientRequest オブジェクト。 options は、次のプロパティを含むオブジェクトです。

  • protocol - http: や https: など、リクエストで使用されるプロトコル。
  • hostname - リクエストされるサーバーのドメイン名または IP アドレス。
  • port - サーバーが応答するポート番号。
  • path - 要求されたパス。
  • method - リクエストで使用される HTTP メソッド (GET、POST など)。
  • headers - リクエストヘッダーを含むオブジェクト。

callback は、サーバーから応答を受信したときに呼び出される関数です。

次の例では、GET リクエストを jsonplaceholder.typicode.com に送信し、ブログ投稿の詳細を返します。

const http = require('http')

const options = {
  hostname: 'jsonplaceholder.typicode.com',
  path: '/posts/1',
  method: 'GET'
}

const req = http.request(options, (res) => {
  console.log(`状态码: ${res.statusCode}`)

  res.on('data', (data) => {
    console.log(`响应主体: ${data}`)
  })

  res.on('end', () => {
    console.log('响应中已无数据。')
  })
})

req.on('error', (error) => {
  console.error(`请求遇到问题: ${error}`)
})

req.end()

この例では、http.ClientRequest オブジェクトが作成されます。 GET リクエストがサーバーに送信され、JSON 形式のデータが指定されます。サーバーから応答を受信したら、応答ステータス コードと応答本文を出力します。

  1. http.get() メソッドを使用してリクエストを送信します

http.get(options[, callback])

このメソッドはhttp.request( ) メソッドと同様ですが、実装できるのは GET リクエストのみです。

次の例では、http.get() メソッドを使用して、同じサーバーに GET リクエストを送信します。

const http = require('http')

http.get('http://jsonplaceholder.typicode.com/posts/1', (res) => {
  console.log(`状态码: ${res.statusCode}`)

  res.on('data', (data) => {
    console.log(`响应主体: ${data}`)
  })

  res.on('end', () => {
    console.log('响应中已无数据。')
  })
}).on('error', (error) => {
  console.error(`请求遇到问题: ${error}`)
})

この例では、http.get() メソッドを使用します。 GET リクエストを jsonplaceholder に送信します。 .typicode.com サーバーは GET リクエストを送信し、サーバーから応答を受信すると、応答ステータス コードと応答本文を出力します。

  1. リクエスト ライブラリを使用してリクエストを送信する

Node.js によって提供される "http" モジュールに加えて、request や などのいくつかのリクエスト ライブラリもあります。アクシオス。これらのライブラリには、より高度な機能があり、Promise をサポートし、リダイレクトやエラーを処理します。

次の例では、リクエスト ライブラリを使用して GET リクエストを jsonplaceholder.typicode.com サーバーに送信します。

const request = require('request')

request('http://jsonplaceholder.typicode.com/posts/1', (error, response, body) => {
  console.log(`状态码: ${response.statusCode}`)
  console.log(`响应主体: ${body}`)
})

この例では、リクエスト ライブラリを使用して GET を送信しますjsonplaceholder.typicode.com サーバーへのリクエスト GET リクエストが送信され、サーバーから応答を受信すると、応答ステータス コードと応答本文が出力されます。

概要

この記事では、Node.js の「http」モジュールを使用して HTTP リクエストを他のサーバーに送信する方法について説明します。基本的なリクエスト操作は http.request() メソッドと http.get() メソッドを使用して実装でき、リクエスト ライブラリ (request や axios など) はより高度な機能をサポートできます。開発者は、独自のニーズや習慣に応じて、HTTP リクエスト操作を実装するさまざまな方法を選択できます。

以上がNodejsで他のサーバーをリクエストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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