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에는 "이벤트"라고 하는 내장 모듈이 있습니다. 여기에서 자신의 이벤트를 생성, 실행 및 수신할 수 있습니다.

내장된 이벤트 모듈을 포함하려면 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');