ホームページ >ウェブフロントエンド >jsチュートリアル >簡単なコード例で Node.js のイベントを理解する - Node.js チュートリアル - パート 6

簡単なコード例で Node.js のイベントを理解する - Node.js チュートリアル - パート 6

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-09-20 18:45:02943ブラウズ

Understanding Events in Node.js with Simple Code Examples - Node.js Tutorial - Part 6

イベントとは何ですか?

Node.js では、イベントはリッスンして実行できるアクションです。イベントを通知システムとして想像してください。ファイルの読み取り完了やリクエストの受信など、何かが起こるたびに、Node.js は応答できるイベントをトリガーします。

イベントエミッタ

Node.js には events という組み込みモジュールがあり、このモジュールの最も重要なクラスは EventEmitter です。これにより、イベントを定義して処理できます。

例 1: 基本的なイベント エミッター

イベント エミッターを作成する方法を見てみましょう。

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

// Register an event listener
myEmitter.on('greet', () => {
  console.log('Hello there!');
});

// Emit the event
myEmitter.emit('greet');

この例では、greet イベントのリスナーを登録し、イベントを発行しました。結果は単純な「こんにちは!」です。コンソールに出力されます。

例 2: イベントで引数を渡す

イベントを発行するときに引数を渡すこともできます。これは、データを渡す必要がある場合に役立ちます。

myEmitter.on('sayHello', (name) => {
  console.log(`Hello, ${name}!`);
});

myEmitter.emit('sayHello', 'Alice');

ここで、sayHello イベントを発行すると、Alice に挨拶します。

例 3: 単純な HTTP サーバーでのイベントの使用

基本的な HTTP サーバーを作成し、イベントがどのように作用するかを示してみましょう。 Node.js では、http モジュールはイベントを広範囲に使用します。リクエストがサーバーに到達するたびに、イベントがトリガーされます。

const http = require('http');

// Create a server
const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.write('Hello World');
    res.end();
  }
});

// Register an event listener for 'request'
server.on('request', (req, res) => {
  console.log(`Received request for ${req.url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

この例では:

  • 基本的な HTTP サーバーが作成されます。
  • 各リクエスト URL を記録するために、「リクエスト」イベントにイベント リスナーが追加されます。
  • サーバーがリクエストを取得するたびに、リクエスト イベントが発行され、リスナーによってそれが取得され、リクエストされた URL が記録されます。

例 4: サーバー内のカスタム イベント

サーバー コード内にカスタム イベントを作成して、特定のタスクを処理できます。以下は、クライアントの接続時にカスタム イベントを発行する例です。

const EventEmitter = require('events');
const http = require('http');

// Create an event emitter instance
const myEmitter = new EventEmitter();

// Create a server
const server = http.createServer((req, res) => {
  res.write('Hello Client');
  res.end();

  // Emit a custom event on each request
  myEmitter.emit('clientConnected', req.url);
});

// Listen for the custom 'clientConnected' event
myEmitter.on('clientConnected', (url) => {
  console.log(`A client connected to ${url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

この例では:

  • クライアントがサーバーにリクエストを行うたびに起動するカスタム イベント clientConnected を作成します。
  • このイベントのリスナーは、イベントの発行時にリクエストの URL を記録します。

イベントを使用する理由

  • ノンブロッキング I/O: Node.js は非同期タスクを効率的に処理することがすべてです。イベントを使用すると、実行をブロックせずにタスクが完了したときに応答できます。
  • モジュール化されたコード: イベントはコードを分離するのに役立ち、コードをよりモジュール化して管理しやすくします。

最終的な考え

イベントは Node.js の中心であり、特にサーバーのコンテキストでの非同期操作の処理に強力です。イベントをマスターすることで、スケーラブルで効率的なアプリケーションを構築するための強力な基盤が得られます。

読んでいただきありがとうございます。コーディングを楽しんでください! ?

以上が簡単なコード例で Node.js のイベントを理解する - Node.js チュートリアル - パート 6の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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