Node.jsイベント


Node.jsは、イベント駆動型アプリケーションに最適です。


Node.jsのイベント

コンピューターでのすべてのアクションはイベントです。接続が確立されたときやファイルが開かれたときのように。

Node.jsのオブジェクトは、ファイルを開いたり閉じたりするときにreadStreamオブジェクトがイベントを発生させるように、イベントを発生させることができます。

var fs = require('fs');
var rs = fs.createReadStream('./demofile.txt');
rs.on('open', function () {
  console.log('The file is open');
});

イベントモジュール

Node.jsには、「イベント」と呼ばれる組み込みモジュールがあり、独自のイベントを作成、起動、およびリッスンできます。

組み込みのEventsモジュールを含めるには、require() メソッドを使用します。さらに、すべてのイベントプロパティとメソッドは、EventEmitterオブジェクトのインスタンスです。これらのプロパティとメソッドにアクセスできるようにするには、EventEmitterオブジェクトを作成します。

var events = require('events');
var eventEmitter = new events.EventEmitter();

EventEmitterオブジェクト

EventEmitterオブジェクトを使用して、イベントハンドラーを独自のイベントに割り当てることができます。

以下の例では、「scream」イベントが発生したときに実行される関数を作成しました。

イベントを発生させるには、emit()メソッドを使用します。

var events = require('events');
var eventEmitter = new events.EventEmitter();

//Create an event handler:
var myEventHandler = function () {
  console.log('I hear a scream!');
}

//Assign the event handler to an event:
eventEmitter.on('scream', myEventHandler);

//Fire the 'scream' event:
eventEmitter.emit('scream');