본문 바로가기
  • Coding & Book
Back-End/Node.js

Node 모듈

by 루이3 2024. 5. 19.

Node 모듈

노드의 모듈은 노드 버전마다 차이가 있습니다.

또한 노드는 웹 브라우저에서 사용되는 자바스크립트보다 더 많은 기능을 제공하고 있습니다.

 

os 모듈

웹브라우저에 사용되는 자바스크립트는 운영체제의 정보를 가져올 수 없지만,

노드는 os 모듈에 정보가 담겨 있어 정보를 가져올 수 있습니다.

 

내장 모듈인 os를 불러오기 위해 require('os') 또는 require('node: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());

아래 컴퓨터 정보들이 나열됩니다.

 

 

path 모듈

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈입니다.

path 모듈이 필요한 이유 중 하나는 운영체제별로 경로 구분자가 다르기 때문입니다.

const path = require('path');

const string = __filename;

//경로의 구분자
console.log('path.sep:', path.sep);
//환경변수의 구분자
console.log('path.delimiter:', path.delimiter);
console.log('------------------------------');
//파일이 위치한 폴더 경로
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('------------------------------');
//파일 경로를 root,dir,base,ext,name으로 분리
console.log('path.parse()', path.parse(string));
//path.parse()한 객체를 파일 경로로 합침
console.log('path.format():', path.format({
  dir: 'D:\\users\\Loui3',
  name: 'path',
  ext: '.js',
}));
console.log('------------------------------');
//파일의 경로가 절대 경로인지 상대경로인지 true나 fase로 알림
console.log('path.isAbsolute(D:\\):', path.isAbsolute('D:\\'));
console.log('path.isAbsolute(./home):', path.isAbsolute('./home'));
console.log('------------------------------');
//경로를 두 개 넣으면 첫번째 경로에서 두번째 경로로 가는 방법을 알림
console.log('path.relative():', path.relative('D:\\users\\Loui3\\path.js', 'D:\\'));
//여러 인수를 넣으면 하나의 경로로 합침
console.log('path.join():', path.join(__dirname, '..', '..', '/users', '.', '/Loui3'));

 

 

 

url 모듈

인터넷 주소를 쉽게 조작하도록 도와주는 모듈 입니다.

최근 url 처리 방식에는 WHATWG 방식만 사용한다고 합니다.

아래는 WHATWG의 url 구분 방법입니다.

 

제 블로그 주소를 자바스크립트로 봐보도록 해보겠습니다.

아래의 방식이 WHATWG의 방식이며 username,password,orgin,search등 속성이 존재하는것을 확인하실수 있습니다.

const url = require('url');

const { URL } = url;
const myURL = new URL('https://loui3.tistory.com/search/Node');
console.log('new URL():', myURL);
console.log('url.format():', url.format(myURL));

 

위의 사진에서 search 부분은 보통 주소를 통해 데이터를 전달할때 사용합니다.

search는 ?로 시작하고 그 뒤에 키=값 형태로 데이터를 전달합니다.

만약 키가 여러개인 경우 &로 구분하고 search 부분을 다루기 위해 searchParams라는 특수한 객체가 생성됩니다.

 

위의 url의 경우 데이터를 전달하는게 없어 아무것도 없지만
아래와 같이 테스트를 해보며 searchParms 객체에 대해 알아보도록 하겠습니다.

 

searchParms.js

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'));

//searchParms의 모든키를 반복기 객체로 가져오기
console.log('searchParams.keys():', myURL.searchParams.keys());

//searchParams의 모든 값을 반복기 객체로 가져오기
console.log('searchParams.values():', myURL.searchParams.values());

//해당키를 추가(같은 값이 있다면 유지하고 하나 더 추가)
myURL.searchParams.append('filter', 'es3');
myURL.searchParams.append('filter', 'es5');
console.log(myURL.searchParams.getAll('filter'));

//append와 비슷하지만 같은 키의 값들을 모두 지우고 새로 추가
myURL.searchParams.set('filter', 'es6');
console.log(myURL.searchParams.getAll('filter'));

//해당 키를 제거
myURL.searchParams.delete('filter');
console.log(myURL.searchParams.getAll('filter'));

//조작한 searchParms 객체를 다시 문자열로 만듬
console.log('searchParams.toString():', myURL.searchParams.toString());
myURL.search = myURL.searchParams.toString();

 

'Back-End > Node.js' 카테고리의 다른 글

노드 기능에 대해 알아보자  (0) 2024.05.18
노드와 자바스크립트 2  (0) 2024.05.16
노드와 자바스크립트  (0) 2024.05.14
노드를 시작해보자  (0) 2024.05.13
Node.js에서 모듈과 npm 사용해보기  (0) 2023.09.13