본문 바로가기
Web/Node.js

Node.js 기본내장모듈

by juein 2018. 2. 26.

[전역변수]


__filename : 현재 실행중인 코드의 파일 경로
__dirname : 현재 실행중인 코드의 폴더 경로

 


example)

console.log('filename : ' , __filename ) ;
console.log('direname : ' , __dirname ) ;

=======================================================


[process]


process.exit() : 프로그램 종료

process.memoryUsage() : 메모리 사용정보 객체 리턴
process.uptime() : 현재 프로그램이 실핸된 시간 리턴


=======================================================


[os module]


//os 모듈 추출 후 사용가능
var os = require('os');  //os 모듈 호출


os.hostname() : 운영체제 호스트 이름
os.type() : 운영체제 이름
os.platform() : 운영체제의 플랫폼
os.arch() : 운영체제의 아키텍쳐
os.release() : 운영체제의 버전
os.uptime() : 운영체제가 실행된 시간
os.totalmem() : 시스템의 총 메모리
os.freemem() : 사용 가능한 메모리
os.cpus() : cpu 정보
os.networkInterfaces() : 네트워크 인터페이스


=======================================================


[url module]


//url 모듈 추출 후 사용가능
var url = require('url');  //url 모듈 호출


url.parse( urlStr ) : url문자열을 url 객체로 리턴
url.format( urlObj ) : url객체를 url문자열로 리턴
url.resolve( from, to ) : 매개변수를 조합해 url문자열 생성


=======================================================


[query string module]


//querystring 모듈 추출 후 사용가능

var querystring = require('querystring'); 


querystring .stringify( obj ) : 쿼리 객체를 쿼리 문자열로 변환
querystring .parse( obj ) : 쿼리 문자열을 쿼리 객체로 변환


=======================================================


[util module]


// util모듈 추출

var util = require('util');


format( format ) : 매개변수로 입력한 문자열을 조합해 리턴


example)

var data = util.format( '%d + %d = %d' , 10, 20, 10 + 20 );
console.log(data);  // 10 + 20 = 30 출력


=======================================================


[crypto module] - 해시 생성


//crypto 모듈 추출
var crypto = require('crypto');


//해시 생성 -> 만들어진 해시값은 원래대로 돌릴수 없다.

var shasum = crypto.createHash('sha256');
shasum.update('변경하고 싶은 문자열 입력'); 
var output = shasum.digest('hex');

console.log('crypto_hash : ', output); //변형된 값 출력


//암호화 -> 암호화는 원래대로 돌릴 수 있다

//변수 선언
var key = 'test'; //아무도 알지못하는 비밀 키

var input = 'password';


//암호화
var cipher = crypto.createCipher('aes192', key);
cipher.update(input, 'utf8', 'base64');
var cipheredOutput = cipher.final('base64');


//암호화 해제
var decipher = crypto.createDecipher('aes192', key);
decipher.update(cipheredOutput, 'base64', 'utf8');
var decipherOutput = decipher.final('utf8');


//출력
console.log('원래 문자열 : ' + input); // 원래 문자열 : password
console.log('암호화 : ' + cipheredOutput); // 암호화 : kwd240sZq8wX7RX0p41v2A==
console.log('암호화 해제 : ' + decipherOutput); // 암호화 해제 : password


=======================================================


[file system module]


//fs 모듈 추출
var fs = require('fs');


fs.readFile( file, encoding, callback ) : 파일 비동기로 읽기
fs.readFileSync( file, encoding ) : 파일을 동기로 읽기
fs.writeFile( file, data, encoding, callback ) : 파일을 비동기로 쓰기
fs.writeFileSync( file, data, encoding ) : 파일 동기로 쓰기


example)


//파일 읽기

//동기 파일 읽기
var text = fs.readFileSync('파일경로_및_파일명.txt', 'utf8');

//비동기 파일 읽기. 정상적으로 읽으면 data 매개변수에 읽은 데이터를 전달
fs.readFile('파일경로_및_파일명.txt', 'utf8', function (error, data) {
	console.log(data);
});


//파일 쓰기

//변수 선언
var data = '저장될 내용 입력';

//동기로 작성
fs.writeFileSync('저장될_파일_명.txt', data, 'utf8');

//비동기 파일 작성
fs.writeFile('저장될_파일_명.txt', data, 'utf8', function(error){
	console.log('성공시 출력메시지');
})


//예외처리를 포함한 파일 읽고 쓰기

//파일 읽기
try{
	var data = fs.readFileSync('읽을파일.txt', 'utf8');
	console.log(data);
} catch (e) {
	console.log(3);
}

//파일 쓰기
try{
	fs.writeFileSync('저장될파일명.txt', '파일내용 직접입력 및 변수할당', 'utf8');
	console.log('성공시 출력');
} catch (e) {
	console.log(e);
}

=======================================================


[이벤트]


on() : 이벤트 연결 메서드, 자바스크립트의 addEventListener() 메서드와 이름은 다르지만 사용 방법은 같다.

emit() : 이벤트 실행

EventEmitter 객체 : 이벤트를 연결할 수 있는 모든 객체의 부모

setMaxListners(limit) : 이벤트 리스너 연결 개수를 조절 (default : 10개)

removeListener(eventName, handler) : 특정 이벤트의 이벤트 리스너를 제거

removeAllListeners([eventName]) : 모든 이벤트 리스너를 제거

once(eventName, eventHandler) : 이벤트 리스너를 한번만 연결

emit(eventName[args1][args2][...]) : 이벤트 강제로 발생


//process 객체에 exit 이벤트를 연결

process.on('exit', function(){

});


'Web > Node.js' 카테고리의 다른 글

express module - request, response 객체  (0) 2018.03.06
http module (server, request, response, cookie)  (0) 2018.03.02
Node js Email Send  (0) 2018.03.02
gulp-less  (0) 2018.03.01
forever & nodemon & supervisor  (0) 2018.02.26

댓글