Process
- 현재 실행 중인 노드 프로세스에 대한 정보를 담고 있음
> process.version
'v14.16.0'
> process.arch
'x64'
> process.platform
'win32'
> process.pid
7528
> process.uptime()
359.828333
> process.execPath
'C:\\Program Files\\nodejs\\node.exe'
> process.cwd()
'C:\\Users\\selen'
> process.cpuUsage()
{ user: 796000, system: 484000 }
process.env
Process.nextTick (콜백)
- 이벤트 루프가 다른 콜백 함수들 보다
nextTick
의 콜백 함수를 우선적으로 처리
setImmediate(() => {
console.log('immediate');
});
process.nextTick(() => {
console.log('nextTick');
});
setTimeout(() => {
console.log('timeout');
}, 0);
Promise.resolve().then(() => console.log('promise'));
Process.exit(코드)
- 현재의 프로세스를 멈춤
- 코드가 없거나 0 이면 정상 종료
- 이외의 코드는 비정상 종료를 의미
let i = 1;
setInterval(() => {
if (i === 5) {
console.log('종료!');
process.exit();
}
console.log(i);
i += 1;
}, 1000);
OS와 Path
OS
const os = require('os');
console.log('운영체제 정보---------------------------------');
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('경로------------------------------------------');
console.log('os.homedir():', os.homedir());
console.log('os.tmpdir():', os.tmpdir());
console.log('cpu 정보--------------------------------------');
console.log('os.cpus():', os.cpus());
console.log('os.cpus().length:', os.cpus().length);
console.log('메모리 정보-----------------------------------');
console.log('os.freemem():', os.freemem());
console.log('os.totalmem():', os.totalmem());
Node.js 공식 문서(API Docs)
Path
- 운영체제 별로 경로 구분 자가 다른데 이걸 알아서 path모듈이 처리해줌 (Windows:
\
, POSIX: /
)const path = require('path');
const string = __filename;
console.log('path.sep:', path.sep);
console.log('path.delimiter:', path.delimiter);
console.log('path.dirname():', path.dirname(string));
console.log('path.extname():', path.extname(string));
console.log('path.basename():', path.basename(string));
console.log('path.basename - extname:', path.basename(string, path.extname(string)));
console.log('path.parse()', path.parse(string));
console.log('path.format():', path.format({
dir: 'C:\\users\\zerocho',
name: 'path',
ext: '.js',
}));
console.log('path.normalize():', path.normalize('C://users\\\\zerocho\\\path.js'));
console.log('path.isAbsolute(C:\\):', path.isAbsolute('C:\\'));
console.log('path.isAbsolute(./home):', path.isAbsolute('./home'));
console.log('path.relative():', path.relative('C:\\users\\zerocho\\path.js', 'C:\\'));
console.log('path.join():', path.join(__dirname, '..', '..', '/users', '.', '/zerocho'));
console.log('path.resolve():', path.resolve(__dirname, '..', 'users', '.', '/zerocho'));
path.join()
은 절대 경로를 무시함
path.resolve()
는 절대 경로가 들어있으면 앞의 것(__dirname
)을 무시
URL과 Querystring
URL 모듈
searchParams
- WHATWG 방식에서 쿼리 스트링(search) 부분 처리를 도와주는 객체
const { URL } = require('url');
const myURL = new URL('http://www.gilbut.co.kr/?page=3&limit=10&category=nodejs&category=javascript');
console.log('searchParams:', myURL.searchParams);
console.log('searchParams.getAll():', myURL.searchParams.getAll('category'));
console.log('searchParams.get():', myURL.searchParams.get('limit'));
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('filter', 'es3');
myURL.searchParams.append('filter', 'es5');
console.log(myURL.searchParams.getAll('filter'));
myURL.searchParams.set('filter', 'es6');
console.log(myURL.searchParams.getAll('filter'));
myURL.searchParams.delete('filter');
console.log(myURL.searchParams.getAll('filter'));
console.log('searchParams.toString():', myURL.searchParams.toString());
myURL.search = myURL.searchParams.toString();
querystring
- 기존 노드 방식에서는 url querystring을
querystring
모듈로 처리
- querystring.parse(쿼리) : url의 query 부부을 자바스크립트 객체로 분해해줌
- querystring.stringify(객체) : 분해된 query 객체를 문자열로 다시 조립해줌
const url = require('url');
const querystring = require('querystring');
const parsedUrl = url.parse('http://www.gilbut.co.kr/?page=3&limit=10&category=nodejs&category=javascript');
const query = querystring.parse(parsedUrl.query);
console.log('querystring.parse():', query);
console.log('querystring.stringify():', querystring.stringify(query));