Global Variables (1 / 2)

23
Global Variables (1 / 2) ㅇ [Debug As] - [Node Application] ㅇ ㅇㅇ ㅇㅇ ㅇ ㅇㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ function ㅇㅇ ㅇㅇ ㅇ ㅇ 5 ㅇㅇ ㅇㅇㅇㅇㅇ ㅇㅇㅇㅇㅇ ㅇㅇ - exports / require / module ㅇ node.js ㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇ - __filename / __dirname ㅇ ㅇㅇ ㅇㅇ , ㅇㅇㅇㅇ ㅇㅇ ㅇㅇ ㅇㅇㅇ ㅇㅇ

description

Global Variables (1 / 2). ㅇ [ Debug As] - [Node Application ]. ㅇ 코드 실행 시 개발자가 작성한 코드를 function 으로 묶은 후 총 5 개의 파라미터를 넘겨주면서 실행. - exports / require / module  node.js 내부 객체를 다루는 객체로 활용 - __filename / __ dirname  파일 이름 , 프로젝트 경로 등의 자료로 활용. Global Variables (2 / 2). ㅇ 코드 실행 결과. - PowerPoint PPT Presentation

Transcript of Global Variables (1 / 2)

Page 1: Global  Variables (1 / 2)

Global Variables (1 / 2)

ㅇ [Debug As] - [Node Application]

ㅇ 코드 실행 시 개발자가 작성한 코드를 function 으로 묶은 후 총 5 개의 파라미터를 넘겨주면서 실행

- exports / require / module node.js 내부 객체를 다루는 객체로 활용- __filename / __dirname 파일 이름 , 프로젝트 경로 등의 자료로 활용

Page 2: Global  Variables (1 / 2)

ㅇ 코드 실행 결과

console.log(__filename);console.log(__dirname);

Global Variables (2 / 2)

Page 3: Global  Variables (1 / 2)

process 객체 (1 / 2)

ㅇ node.js 에서만 지원되는 객체로써 여러가지 기본 정보를 가지고 있고 기본 기능들을 제공

console.log(process);

Page 4: Global  Variables (1 / 2)

process 객체 (2 / 2)

ㅇ 메소드 및 속성

console.log(process.execPath);console.log(process.cwd());console.log(process.version);console.log(process.memoryUsage());console.log(process.env);

Page 5: Global  Variables (1 / 2)

exports 객체 (1 / 2)

ㅇ 모듈 로딩 시스템ㅇ 개발자가 직접 객체를 구현하고 exports 객체를 이용하여 재사용

var cal = require('./cal.js');

console.log(cal.sum(5, 6));

exports.js

exports.sum = function(x, y) {x = parseInt(x);y = parseInt(y);

return x + y;}

cal.js

Page 6: Global  Variables (1 / 2)

exports 객체 (2 / 2)

ㅇ Require 를 이용하여 모듈 로딩시 같은 디렉토리에 있을 경우 ‘ ./’ 를 써주고 이외의 경우는 상대 / 절대 경로로 표기ㅇ 경로를 나타내지 않고 require(‘cal.js’) 로 호출시에는 node_modules 디렉토리 생성 후 파일 추가

var cal = require('cal.js');

console.log(cal.sum(5, 6));

exports.js

Page 7: Global  Variables (1 / 2)

Events (1 / 5)ㅇ Events 등록

- 자바스크립트에서는 addEventListener 함수를 이용하여 click, mousemove 등 다양한 이벤트를 등록하고 해당 이벤트 핸들러를 구현하여 사용- node.js 에서는 EventEmitter 클래스에 구현된 addListener 와 on 두개의 함수를 이용하여 이벤트를 등록하여 사용

var eventHandler = function() {console.log('EXIT');

};process.addListener('exit', eventHandler);// process.on(‘exit’, eventHandler);

events1.js

Page 8: Global  Variables (1 / 2)

Events (2 / 5)ㅇ Events 삭제

process.on('exit', function(e) {console.log('EXIT');

});

var errHandler1 = function(e) {console.log('err1', e);

};

var errHandler2 = function(e) {console.log('err2', e);

};

process.on('uncaughtException', errHandler1);process.on('uncaughtException', errHandler2);

process.removeListener('uncaughtException', er-rHandler2);

error

events2.js

Page 9: Global  Variables (1 / 2)

Events (3 / 5)ㅇ Events 발생

process.on('test', function() {console.log('Test Event!');

});

process.emit('test');

events3.js

- emit() 메소드를 이용하여 이벤트 강제 발생

Page 10: Global  Variables (1 / 2)

Events (4 / 5)ㅇ Events 발생 (1 / 2)

var eObj = require('eventObj.js');

eObj.obj.on('test', function() {console.log('test event');

});

console.log(eObj.obj.sum(5, 6));

eObj.obj.emit('test');

events4.js

Page 11: Global  Variables (1 / 2)

Events (5 / 5)ㅇ Events 발생 (2 / 2)

exports.obj = new process.EventEmitter();

exports.obj.sum = function(x, y) {return x + y;

};

eventObj.js

- 새로운 객체에서 이벤트를 사용하기 위해 EventEmiter 상속

Page 12: Global  Variables (1 / 2)

os 모듈 (1 / 2)ㅇ 서버의 기본적인 하드웨어 자원들의 정보를 확인

var os = require('os');

console.log(os.platform());

os.js

메소드 설명

os.tempdir() 서버의 temp 디렉토리 반환

os.endianness() 엔디언 타입 반환 ‘ BE’ or ‘LE’

os.hostname() 서버의 호스트 이름 반환

os.type() 서버의 OS 타입 반환

os.platform() 서버의 플랫폼 반환

os.arch() 서버의 CPU 아키텍처 반환

os.release() 운영체제 OS 버전 반환

Page 13: Global  Variables (1 / 2)

os 모듈 (2 / 2)

메소드 설명

os.uptime() 운영체제 시작된 시간 반환

os.loadavg() Load average 에 담긴 정보 반환

os.totalmem() 시스템 메모리 반환

os.freemem() 사용 가능 메모리 반환

os.cpus() CPU 정보 반환

os.networkInterfaces() 네트워크 정보 반환

Page 14: Global  Variables (1 / 2)

File System 모듈 (1 / 4)ㅇ 파일 핸들링 관련 메소드 제공ㅇ 동기 / 비동기 두가지 방식으로 제공ㅇ 동기 방식의 경우 , 비동기 방식 메소드에 ‘ ~Sync’ 라는 접미사를 붙임

var fs = require('fs');fs.readFile('../README.md', 'utf8', function(err, data) {

if(err) {throw err;

}console.log(data);

});

file1.js

ㅇ 파일 읽기

동기 방식 fs.readFileSync(‘../README.md’, ‘utf8’);

Page 15: Global  Variables (1 / 2)

var fs = require('fs');

// asyncfs.exists('../README2.md', function(exists) {

console.log("async : " + exists);});

// syncvar exists = fs.existsSync('../README.md');console.log("sync : " + exists);

file2.js

ㅇ 파일 확인

File System 모듈 (2 / 4)

Page 16: Global  Variables (1 / 2)

var fs = require('fs');

// asyncfs.writeFile('../save1.txt', 'Hello Node', 'utf8', function(err) {

if(err) {throw err;

}console.log("async saved");

});

// syncfs.writeFile('../save2.txt', 'Hello Node', 'utf8');

file3.js

ㅇ 파일 쓰기

File System 모듈 (3 / 4)

Page 17: Global  Variables (1 / 2)

var fs = require('fs');

// asyncfs.unlink('../save1.txt', function(err) {

if(err) {throw err;

}console.log("delete");

});

// syncfs.unlinkSync('../save2.txt');

file4.js

ㅇ 파일 삭제

File System 모듈 (4 / 4)

Page 18: Global  Variables (1 / 2)

url 모듈ㅇ Url String 객체ㅇ 객체화 : url.parse()

ㅇ 직렬화 : url.format()

var url = require('url');

var obj = url.parse('https://www.google.co.kr/webhp?' + 'sourceid=chrome-instant&ion=1&' + 'espv=2&ie=UTF-

8#newwindow=1&q=node.js');console.log('url to Object : ', obj);console.log('=============================');console.log('Object to url : ', url.format(obj));

url.js

Page 19: Global  Variables (1 / 2)

util 모듈ㅇ 문자열 재구성 : util.format()

ㅇ 로그 출력 : util.log()

var util = require('util');

var data = util.format('%s, %d, %j', 'foo', 10, {name:'node.js'});

console.log(data);

util1.js

- %s : 스트링 , %d : 숫자 , %j : JSON

var util = require('util');

util.log('LOG TEST');

util2.js

Page 20: Global  Variables (1 / 2)

net 모듈 (1 / 4)ㅇ 내부적으로 매우 많이 사용되지만 ,

일반적인 node.js 애플리케이션 개발에서는 거의 사용되지 않음ㅇ express 같은 서버 역할을 해주는 외부 모듈에서 이미 구현되어 있기 때문에 개발자가 직접 net 모듈을 사용하여 개발하지 않음

var net = require('net');

var server = net.createServer(function(c) {console.log('server connected');c.on('end', function() {

console.log('server disconnected');});c.write('hello\r\nThis is Telnet Service\r\n');c.pipe(c);

});

server.listen(8124, function() {console.log('server bound');

});

net.js

Page 21: Global  Variables (1 / 2)

net 모듈 (2 / 4)ㅇ putty 접속 (1 / 2)

Page 22: Global  Variables (1 / 2)

net 모듈 (3 / 4)ㅇ putty 접속 (2 / 2)

Page 23: Global  Variables (1 / 2)

net 모듈 (4 / 4)ㅇ console 로그