바르고 뜨겁게
[NodeJS] 모듈 (OS 모듈, path 모듈, url 모듈, querystring 모듈) 본문
OS 모듈
require('os')
로 임포트(?)해서 사용가능
// OS 내장 모듈
console.log('---- OS 모듈 ----');
const os = require('os');
console.log('os.arch(): ',os.arch());
console.log('os.platform(): ',os.platform());
console.log('os.type(): ',os.type());
console.log('os.uptime() 운영체제의 실행시간: ',os.uptime());
console.log('os.hostname(): ',os.hostname());
console.log('os.release(): ',os.release());
console.log('os.homedir(): ',os.homedir());
console.log('os.tmpdir(): ',os.tmpdir());
console.log('os.totalmem() 전체 메모리: ',os.totalmem());
console.log('os.freemem() 추가로 사용가능한 메모리: ',os.freemem());
console.log('os.cpus(): ',os.cpus());
---- OS 모듈 ----
os.arch(): x64
os.platform(): win32
os.type(): Windows_NT
os.uptime() 운영체제의 실행시간: 456338.0295154
os.hostname(): DESKTOP-1QCJNDH
os.release(): 10.0.17134
os.homedir(): C:\Users\jeong
os.tmpdir(): C:\Users\jeong\AppData\Local\Temp
os.totalmem() 전체 메모리: 17109381120
os.freemem() 추가로 사용가능한 메모리: 9315528704
os.cpus(): [ { model: 'AMD Ryzen 7 1800X Eight-Core Processor ',
speed: 3593,
...
path 모듈
require('path')
로 임포트(?)해서 사용가능
// path 모듈
console.log('---- path 모듈 ----');
console.log('파일 경로: ',__filename);
console.log('파일이 위치한 경로: ',__dirname);
const path = require('path');
console.log('path.sep OS에따른 경로 구분자: ',path.sep);
console.log('path.delimiter 환경변수 구분자: ',path.delimiter);
console.log('path.dirname() 파일경로: ',path.dirname(__filename));
console.log('path.extname() 파일확장자: ',path.extname(__filename));
console.log('path.basename() 파일이름: ',path.basename(__filename));
console.log('path.parse() 파일정보 분해: ',path.parse(__filename));
console.log('path.format() 파일정보 합침');
console.log('path.normalize() 슬래시 역슬래시 경로 변경');
console.log('경로: (./ 현재폴더 상대경로) , (../ 부모폴더 상대경로) , ( / 루트 절대경로)');
console.log('path.isAbsolute() 경로가 절대인지 상대인지 확인: ',path.isAbsolute('C:\\'));
console.log('path.relative() A에서 B로가는 상대경로를 보여줌: ',path.relative('D:\\포트폴리오\\_Study\\Inflearn_nodeJS-Textbook\\globalM.js', 'D:\\포트폴리오'));
console.log(' -- path.join: 절대경로를 무시하고 합침 , path.resoleve: 절대경로를 고려하고 합침(C:\) -- '); // 중간에 /tempDir를 만났을때 상대로보는가 절대로보는가 차이가 있다.
console.log('path.join: ', path.join(__dirname, '..', '..', '/tempDir' , '.', '/tempDirIn'));
console.log('path.resolve: ', path.resolve(__dirname, '..', '..', '/tempDir' , '.', '/tempDirIn'));
---- path 모듈 ----
파일 경로: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook\globalM.js
파일이 위치한 경로: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook
path.sep OS에따른 경로 구분자: \
path.delimiter 환경변수 구분자: ;
path.dirname() 파일경로: D:\포트폴리오\_Study\Inflearn_nodeJS-Textbook
path.extname() 파일확장자: .js
path.basename() 파일이름: globalM.js
path.parse() 파일정보 분해: { root: 'D:\\',
dir: 'D:\\포트폴리오\\_Study\\Inflearn_nodeJS-Textbook',
base: 'globalM.js',
ext: '.js',
name: 'globalM' }
path.format() 파일정보 합침
path.normalize() 슬래시 역슬래시 경로 변경
경로: (./ 현재폴더 상대경로) , (../ 부모폴더 상대경로) , ( / 루트 절대경로)
path.isAbsolute() 경로가 절대인지 상대인지 확인: true
path.relative() A에서 B로가는 상대경로를 보여줌: ..\..\..
-- path.join: 절대경로를 무시하고 합침 , path.resoleve: 절대경로를 고려하고 합침 --
path.join: D:\포트폴리오\tempDir\tempDirIn
path.resolve: D:\tempDirIn
url 모듈
require('path')
로 임포트(?)해서 사용가능
const url = require('url');
const URL = url.URL;
const myURL = new URL('http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1');
console.log('new URL(): ', myURL); // whatwg 방식 (search 처리 편리)
console.log('url.format(): ', url.format(myURL));
console.log('url.parse(): ', url.parse('http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1')); // 기존 방식 (호스트가없을때 사용가능)
console.log('---- searchParams ----');
console.log('searchParams: ', myURL.searchParams);
console.log('searchParams.getAll: ', myURL.searchParams.getAll('search_cate'));
console.log('searchParams.get: ', myURL.searchParams.get('search_keyword'));
console.log('searchParams.has: ', myURL.searchParams.has('page')); // 키가 있냐 없냐
console.log('searchParams.keys: ', myURL.searchParams.keys());
console.log('searchParams.values: ', myURL.searchParams.values());
myURL.searchParams.append('key추가', 'vlaue값'); // 주소에 &key추가=value값 이런식으로 추가가됨
myURL.searchParams.append('key추가', 'vlaue값2');
console.log('searchParams.getAll 추가후: ', myURL.searchParams.getAll('key추가'));
myURL.searchParams.set('key추가', '뉴 vlaue값'); // set은 기존에 있던걸 수정한다.
console.log('searchParams.getAll 수정후: ', myURL.searchParams.getAll('key추가'));
myURL.searchParams.delete('key추가'); // 삭제
console.log('searchParams.getAll 수정후: ', myURL.searchParams.getAll('key추가'));
console.log('searchParams.toString(): ', myURL.searchParams.toString());
new URL(): URL {
href: 'http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1',
origin: 'http://www.wemakeprice.com',
protocol: 'http:',
username: '',
password: '',
host: 'www.wemakeprice.com',
hostname: 'www.wemakeprice.com',
port: '',
pathname: '/deal/adeal/3541228',
search: '?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1',
searchParams: URLSearchParams {
'search_cate' => 'top',
'search_keyword' => '샐러드',
'_service' => '4',
'_no' => '1',
'autocomp' => '1' },
hash: '' }
url.format(): http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1
url.parse(): Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.wemakeprice.com',
port: null,
hostname: 'www.wemakeprice.com',
hash: null,
search: '?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1',
query: 'search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1',
pathname: '/deal/adeal/3541228',
path: '/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1',
href: 'http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1' }
---- searchParams ----
searchParams: URLSearchParams {
'search_cate' => 'top',
'search_keyword' => '샐러드',
'_service' => '4',
'_no' => '1',
'autocomp' => '1' }
searchParams.getAll: [ 'top' ]
searchParams.get: 샐러드
searchParams.has: false
searchParams.keys: URLSearchParamsIterator { 'search_cate', 'search_keyword', '_service', '_no', 'autocomp' }
searchParams.values: URLSearchParamsIterator { 'top', '샐러드', '4', '1', '1' }
searchParams.getAll 추가후: [ 'vlaue값', 'vlaue값2' ]
searchParams.getAll 수정후: [ '뉴 vlaue값' ]
searchParams.getAll 수정후: []
searchParams.toString(): search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1
querystring 모듈
console.log('---- querystring 모듈 예전 방식 파싱에 사용한다 ----');
const url = require('url');
const querystring = require('querystring');
const parseUrl = url.parse('http://www.wemakeprice.com/deal/adeal/3541228?search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1');
const query = querystring.parse(parseUrl.query);
console.log('파싱한 쿼리: ',query)
console.log('querystring.stringify: ',querystring.stringify(query));
---- querystring 모듈 예전 방식 파싱에 사용한다 ----
파싱한 쿼리: { search_cate: 'top',
search_keyword: '샐러드',
_service: '4',
_no: '1',
autocomp: '1' }
querystring.stringify: search_cate=top&search_keyword=%EC%83%90%EB%9F%AC%EB%93%9C&_service=4&_no=1&autocomp=1
'자바스크립트 > Node Js' 카테고리의 다른 글
[NodeJS] util 모듈(deprecate, promisify) (0) | 2018.12.27 |
---|---|
[NodeJS] crypto 양방향 암호화(cipher) (0) | 2018.12.18 |
[NodeJS] 내장객체 - global, __filename, __dirname, process, console, 타이머 (0) | 2018.12.14 |
[NodeJS] 노드 모듈 시스템 - 다른 JS 변수 참조 (0) | 2018.12.13 |
[NodeJS] 이벤트 루프 (0) | 2018.12.13 |
Comments