• 회원가입
  • 로그인
  • 구글아이디로 로그인

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

1,314  
목차
  1. Node.js의 이벤트
  2. events 모듈
  3. EventEmitter 객체 - on() 메서드 / emit() 메서드

※ 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 객체 - on() 메서드 / emit() 메서드

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

 

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');

 



분류 제목
basic Node.js - Home
basic Node.js - Intro (소개)
basic Node.js - Start (시작) - 사용 환경 구축
basic Node.js - Modules (모듈)
basic Node.js - HTTP Module (데이터 전송 모듈)
basic Node.js - File System Module (파일 시스템 모듈)
basic Node.js - URL Module (주소 처리 모듈)
basic Node.js - NPM (노드 패키지 관리자)
basic Node.js - Events (이벤트)
basic Node.js - Upload Files (파일 업로드) 2
basic Node.js - Email (이메일 보내기)
mysql Node.js - MySQL 설치・연결 + 쿼리 보내기
mysql Node.js - MySQL Create Database (DB 생성)
mysql Node.js - MySQL Create Table (테이블 생성) ※ Primary key 설정.
mysql Node.js - MySQL Insert Into (데이터 삽입)
mysql Node.js - MySQL Select From (데이터 선택)
mysql Node.js - MySQL Where (조건절)
mysql Node.js - MySQL Order By (정렬 순서)
mysql Node.js - MySQL Delete From (데이터 삭제)
mysql Node.js - MySQL Drop Table (테이블 삭제)
1/4
목록
찾아주셔서 감사합니다. Since 2012