• Q&A
  • 회원가입
  • 로그인

[basic] Node.js - Events (이벤트)

20  
Node.js는 이벤트 기반 애플리케이션에 적합.

Node.js의 이벤트

 

1.

컴퓨터의 모든 동작은 이벤트에 해당.

(예) 연결이 이루어 지거나 파일이 열릴 때.
 
2.
Node.js의 객체는 이벤트를 발생시킬 수 있음.
(예) 파일을 열고 닫을 때 readStream 객체가 이벤트를 발생.

 


[예제]

 

var fs = require('fs');

var rs = fs.createReadStream('./hz.txt');

rs.on('open', function () {

  console.log('The file is open');

});

 

 
events 모듈

[정의]

 

사용자 정의 이벤트를 (생성, 실행, 수신) 가능.

 

1. 내장 모듈 중 하나. 더 자세히 보기.

2. 모든 이벤트 속성과 메서드는 EventEmitter 객체의 인스턴스임. 

3. 이벤트 속성/메서드 접근하려면, EventEmitter 객체를 먼저 생성.

 


[구문]

 

var events = require('events');

var eventEmitter = new events.EventEmitter();

 

 
EventEmitter 객체

※ 아래 예제 코드를 먼저 본 후, 아래 내용 확인 !!

 

events 모듈의 EventEmitter() 메서드로 eventEmitter 객체 생성 후, eventEmitter 객체의 on() 메서드 활용해 이벤트 핸들러 (= 이벤트 발생 시 실행 내용)를 특정 이벤트와 묶은 후, eventEmitter 객체의 emit() 메서드를 이용해 이벤트를 촉발시키면 이벤트핸들러에 정의된 함수가 실행됨. 

 


[예제]

 

var events = require('events'); // events 모듈 사용.

var eventEmitter = new events.EventEmitter(); // 객체 생성.


// 이벤트 핸들러 (= 이벤트 발생 시 실행할 내용) 생성.

var myEventHandler = function () {

  console.log('I love you');

}


// 이벤트 핸들러를 love 이벤트에 할당.

eventEmitter.on('love', myEventHandler);


// 'love' 이벤트 촉발. (이벤트 핸들러에 정의한 함수 내용이 실행됨.)

eventEmitter.emit('love');

 



방문자 수

오늘 241
어제 2,214
최대 2,397
이달 49,671
전체 997,417
Since 2012