[Node.js]내장 모듈
2022. 4. 10. 21:14ㆍProgramming 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.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’);
// 1234
console.log(‘original :’, input);
// 암호화된 내용
console.log(‘암호화 : ‘, cipheredOutput);
// 암호화된 내용을 복호화한 내, ‘1234’
console.log(‘복호화 : ‘, decipheredOutput);
반응형
LIST
'Programming language > Node.js' 카테고리의 다른 글
[Node.js]내장 객체 (0) | 2022.04.10 |
---|