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.parse(urlStr, [parseQueryString], [slashesDenoteHost])
- 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’);
console.log(‘original :’, input); // 1234 console.log(‘암호화 : ‘, cipheredOutput); // 암호화된 내용 console.log(‘복호화 : ‘, decipheredOutput); // 암호화된 내용을 복호화한 내, ‘1234’