Node.js は、イベント駆動型のノンブロッキング I/O モデルに基づいて構築されたサーバーサイド JavaScript ランタイムです。 Node.js の開発においてイベントが非常に重要な役割を果たしていることがわかります。では、Node.js には何種類のイベントがあるのでしょうか?この記事では、Node.js のさまざまなイベントについて詳しく紹介します。
Node.js では、イベントはトリガーとも呼ばれ、EventEmitter オブジェクトによってトリガーされます。 EventEmitter は Node.js によって提供されるコア モジュールであり、その原理は、必要なイベントがトリガーされると、Node.js がこのイベントにバインドされたすべてのコールバック関数を呼び出すことです。 Node.js では、イベントのトリガーとコールバック関数の実行は非同期です。つまり、Node.js はイベントの完了を待たず、後続の操作を実行し続けます。これは、Node.js の非常に効率的なメカニズムの 1 つです。
以下では、Node.js の一般的なイベント タイプを紹介します:
1. 接続イベント (接続)
接続イベントは、新しいクライアント リクエストが到着したときです。イベントがいつトリガーされるか。 Node.js では、net.createServer() メソッドを使用して TCP サーバーを作成し、接続イベントをリッスンできます。このイベントは、新しいクライアントがこのサーバーに接続するとトリガーされます。
2. クローズ イベント (close)
クローズ イベントは、サーバーまたはクライアントの接続が閉じられたときにトリガーされるイベントです。 Node.js では、socket.on('close') メソッドを使用してこのイベントをバインドできます。このイベントは、サーバーまたはクライアント接続が閉じられたときにトリガーされます。
3. エラーイベント (error)
エラーイベントは、エラーが発生したときにトリガーされるイベントです。 Node.js では、socket.on('error') メソッドを使用してこのイベントをバインドでき、エラーが発生するとこのイベントがトリガーされます。
4. データイベント(data)
データイベントは、データを受信したときに発生するイベントです。 Node.js では、socket.on('data') メソッドを使用してこのイベントをバインドできます。このイベントは、データが到着するとトリガーされます。
5. 終了イベント (end)
終了イベントは、サーバーまたはクライアントがデータを送信した後にトリガーされるイベントです。 Node.js では、socket.on('end') メソッドを使用してこのイベントをバインドできます。このイベントは、データの送信時にトリガーされます。
6. タイムアウトイベント (timeout)
タイムアウトイベントは、接続がタイムアウトしたときにトリガーされるイベントです。 Node.js では、socket.setTimeout() メソッドを使用してタイムアウトを設定できます。接続が応答せずに設定時間を超えた場合、このイベントがトリガーされます。
7. 書き込み可能イベント (ドレイン)
書き込み可能イベントは、バッファに書き込まれたデータが消費されたときにトリガーされるイベントです。 Node.js では、socket.on('drain') メソッドを使用してこのイベントをバインドできます。このイベントは、データを書き込むためのバッファーがクリアされたときにトリガーされます。
8. アップグレード イベント (アップグレード)
アップグレード イベントは、HTTP アップグレード中にトリガーされるイベントです。 Node.js では、http.createServer() メソッドを使用して HTTP サーバーを作成し、アップグレード イベントをリッスンできます。このイベントは、リクエストが WebSocket または HTTP/2 にアップグレードされるときに発生します。
上記は、Node.js の一般的なイベント タイプです。さらに、Node.js には、pipe、unpipe、finish などの他のイベント タイプもあります。 Node.js のイベント タイプを理解することは、Node.js 開発にとって非常に重要です。イベント メカニズムを学習して習得することで、Node.js の中心的な概念とプログラミング モデルをより深く理解するのに役立ちます。
以上がNodejs イベントには何種類ありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。