[Node.js]내장 모듈

2022. 4. 10. 21:14Programming language/Node.js

    목차

이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다.

 

서론

지난 글 [Node.js]내장 객체에 이어 이번 글에서는 Node.js에서 기본적으로 제공하는 내장 모듈에 대해서 다뤄보려 합니다. 아래는 내장 모듈의 사용법입니다.

  • require('모듈명') : 인자로 받은 모듈을 가져와 사용할 수 있게 해 줌
    • #include 나 import 같은 거, 전처리기가 아닌 함수 형태로 제공

내장 모듈 종류

os

os 정보를 담고 있는 모듈

 

path

파일이나 폴더의 경로를 다루는데 도움을 주는 모듈

url

  • 문자열 —- parse() —> url객체 : url.parse()은 문자열을 받아 url객체를 리턴
    • url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
      • parseQueryString : url객체의 query속성을 true면 객체로 false면 문자열 형식으로 가져옴
      • slashesDenoteHost : urlStr부분에서 true 면 host/path로 false면 전체를 path로 host는 null로 인식
  • url객체 — format() —-> 문자열 : url.format()는 url객체를 받아 문자열 url로 리턴
  • resolve(base, href) : base url에 이동할 url(href url)을 연결해줘서 반환

querystring

  • query와 관련된 모듈, url.parse의 두 번째 인자 값에 따라 대체 가능
  • 문자열 —- parse() —> query객체 : query.parse()은 문자열을 받아 url객체를 리턴, querystring.decode()와 같다.
  • query객체 — stringify() —-> 문자열 : query.stringify()는 url객체를 받아 문자열 url로 리턴, querystring.encode()와 같다.
  • parse(), stringify()에 들어가는 인자 중 2번째 3번째 인자
    • 2번째 : separator, query가 여러 개일 경우 각각을 구분 (기본값 : ‘&’)
    • 3번째 : assignment, query각각에 value 대입, key와 value를 연결한다는 뜻 (기본값 : ‘=’)
    • 4번째 : option, parse()의 경우
      • maxKeys : 0~1000 사이 정수, 0일 경우 제한 없다는 뜻, 쿼리 개수 제한 (기본값 : 1000)
      • decodeURIComponent : query 문자열에서 퍼센트 인코딩 된 문자를 디코딩할 때 사용할 함수, 기본값 : querystring.unescape()
    • 4번째 : option, stringify()의 경우
      • encodeURIComponent : url에서 적합하지 않은 문자를 치환해주는 함수, 기본값 : querystring.escape()

crypto

  • 암호화 모듈
  • 단방향 : 복호화가 필요 없는 내용을 암호화할 때 주로 사용, 복호화 불가 1) createHash(algorithm) : md5, sha1, sha256, sha512 암호화할 알고리즘을 지정. 2) update(str) : 비밀번호 등 변환할 문자열(str) 지정. 3) digest(encode) : base64, hex 등 인코딩할 알고리즘 지정.
var crypto = require(‘crypto’); 
var md5sum = crypto.createHash(‘md5’); 
md5sum.update(‘password’); 
var output = md5sum.digest(‘base64’); 
console.log(‘pw :’, output);
  • 양방향 : 암호화와 복화와 모두 가능
    • 대칭키 방식 : 암호화와 복호화에 동일한 키 사용
    • 비대칭키 방식 : 암호화와 복호화에 다른 키 사용
var crypto = require(‘crypto’); 
var cipher = crypto.createCipher(‘aes192’, ‘key’); 
var input = ‘1234’; 
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’);

// 1234 
console.log(‘original :’, input); 
// 암호화된 내용 
console.log(‘암호화 : ‘, cipheredOutput); 
// 암호화된 내용을 복호화한 내, ‘1234’
console.log(‘복호화 : ‘, decipheredOutput);
반응형
LIST

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

[Node.js]내장 객체  (0) 2022.04.10