StoryCode

내장 모듈

Node.js
반응형

[참조] http://cyberx.tistory.com/138?category=195624


1) 모듈 부르기

require()





2) os 모듈 부르기

var os = require('os')


   hostname() 운영체제의 호스트명을 반환합니다.
   type() 운영체제의 종류를 반환합니다.
   platfrom() 운영체제의 플랫폼을 반환합니다.
   arch() 운영체제의 아키텍처를 반환합니다.
   release() 운영체제의 버전을 반환합니다.
   uptime() 운영체제의 실행시간을 반환합니다.
   loadavg() 로드 에버리지 정보를 담은 배열을 반환합니다.
   totalmem() 시스템 총 메모리를 반환합니다.
   freemem 사용 가능한 메모리를 반환합니다.
   cpus CPU의 정보를 담은 객체를 반환합니다.
   getNetworkInterfaces() 네트워크 인터페이스의 정보를 담은 배열을 반환합니다.







3) url 모듈 부르기

// url 모듈 호출

var url = require('url');


// 구글에 nodejs라고 검색한 주소를 파싱

> var parsedURL = url.parse('https://www.google.co.kr/search?q=nodejs&oq=nodejs&aqs=chrome.0.69i59l3j69i60l3.968j0j8&sourceid=chrome&ie=UTF-8');

> parseURL






4) querystring 모듈 부르기

 // queryStrig 모듈 호출


var qs = require('querystring');

var objQuery = qs.parse(parsedURL.query);

var strQuery = qs.stringify(objQuery);


console.log(objQuery);

console.log(strQuery);






5) Util 모듈 부르기

utill.format() : 매개변수로 입력한 문자열을 조합해 반환합니다.

utill.debug() : 프로그램의 실행을 멈추고 입력값을 출력합니다.

utill.log() : timesteamp 시관과 함께 메시지를 출력한다.


외 다수


> var util= require('util');

> var data = util.format('%d%s %d%s',5, '월', 5, '일 어린이날')'

> console.log(data);




6) Crypto 모듈 부르기

// crypto모듈 호출

var crypto= require('crypto');


// 해시 생성

var shasum = crypto.createHash('sha1');

shasum.update('crypto_hash');

var output = shasum.digest('hex');

console.log(output)


var key = '비밀'; // 비밀키값

var input = 'password486'


//암호화

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 decipheredOutput = decipher.final('utf8');

     

console.log(input)                          // 출력값 : password486

console.log(cipheredOutput)            // 출력값 : 7OVfng/ujIZ8RkfxBIJAaA==

console.log(decipheredOutput )        // 출력값 : password486





7) File System 모듈 부르기

FileSystem을 줄여서 fs모듈이라 하는데요 파일 처리와 관련된 작업을 합니다. 

굉장히 많은 메소드가 있어 위에 링크따라 들어가셔러 언급되지 않은 메소드들도 함께 보면 좋을것 같습니다.



대부분의 메소드들이 동기/비동기로 나뉘어지는데,

동기방식을 사용하는 메소드에는 Sync라는 키워드가 붙어잇다고 보시면 좋을 것 같습니다.

비동기 방식은 callback함수를 마지막에 추가하시면 되는데

파일을 읽어오는 함수 readFile(비동기)/readFileSync(동기)로 설명하자면



동기방식은 (파일 경로, 인코딩)이라면

fs.readFileSync( 'test.txt' , 'utf8' );



비동기 방식은 마지막 인자에 callback 함수를 추가해주시면됩니다.

fs.readFile('test.txt', 'utf8'. function(error, data){ console.log(data); });


파일 처리를 하면서 중요한 부분 중 하나는 예외처리인데요 시스템이 비정상적으로 종료되지 않게 하기 위한 필수 사항입니다만

동기/비동기에 따라 예외처리하는 법이 다릅니다.

위에서 예상하실 수 있듯이, 비동기 방식에서는 callback함수에 예외처리가 가능합니다.

동기 방식에서는 try/catch 문으로 예외처리 하시면 됩니다.


그럼 예외처리까지해서 비동기 방식의 파일을 읽고 쓰기를 실행해보겠습니다.





비동기 방식 ---------------------

  // 모듈을 호출합니다.

  var fs = require('fs');


  // 파일 쓰기

  fs.writeFile( 'test.txt' , 'testing~' , 'utf8', function (error) {

   if(error){

       console.log(error);

   }else{

        console.log('파일 작성 완료');

   }

  });


  // 파일 읽기

  fs.readFile( 'test.txt' , 'utf8' , function (error, data){ 

   if(error){

       console.log(error);

   }else{

        console.log(data);

   }

  });

  

  


동기방식 -------------------------

크게 다를거 없이 callback함수를 지우시고 전체를 try문으로 감싼 후 catch문에 error가 발생했을 경우의 처리 방식을  작성하시면 됩니다.



try{

    fs.writeFileSync('test.txt', 'hello summer', 'utf8');

}catch(e){

    console.log(e);

}







이 외에도 

파일에 내용을 추가하는 appendFile/appendFileSync

파일이 존재하는지 확인하는 exists

파일의 이름을 재정의 하는 rename/renameSync 등등

다양한 메소드들을 제공

반응형

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

Atom 설치  (0) 2019.04.17
설치 (Windows)  (0) 2019.04.16
Process 객체, exports 객체  (0) 2018.10.31
API  (0) 2018.10.31
설치  (0) 2018.10.31