노드
노드 os와 path
포칼이
2023. 4. 11. 17:21
OS
운영체제의 정보를 담고 있다.
모듈은 require로 가져온다. (내장 모듈이라 경로 대신 이름만 적어줘도 된다.)
간단히 os 모듈 메서드를 소개하자면 다음과 같다
- os.arch() : process.arch와 동일하다.
- os.platform() : process.platform 과 동일하다.
- os.type() : 운영체제의 종류를 보여준다.
- os.uptime() : 운영체제 부팅 이후 흐른 시간(초)을 보여준다.
- os.hostname() : 컴퓨터의 이름을 보여준다.
- os.release() : 운영체제의 버전을 보여준다.
- os.homedir() : 홈 디렉터리 경로를 보여준다.
- os.tmpdir() : 임시 파일 저장 경롤르 보여준다.
- os.cpus() : 컴퓨터의 코어 정보를 보여준다.
- os.freemem() : 사용 가능한 메모리 (RAM)를 보여준다.
- os.totalmem() : 전체 메모리 용량을 보여준다.
Path
폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈이다. 보통 아래와 같이 많이 쓴다
//path.js
const path = require('path');
운영체제별로 경로 구분자가 다르다. (Windows:\, POSIX : /) *맥과 리눅스를 합쳐서 POSIX라 한다.
이렇게 os에 따라서 경로를 표시하는 것이 중구 난방이기 때문에 편하게 path로 처리하면 간편하다.
const path = require('path');
console.log(path.join(__dirname, 'var.js'));
알아둬야할 path 관련 정보
join과 resovle의 차이 :
resolve는 / 를 절대경로로 처리, join은 상대결로로 처리한다.
상대 경로 : 현재 파일 기준. 같은 경로면 점 하나(.), 한 단계 상위 경로면 점 두 개(..)
절대 경로는 루트 폴더나 노드 프로세스가 실행되는 위치가 기준이다.
//path.js
const path = require('path');
console.log(path.join(__dirname, '/var.js'));
console.log(path.resolve(__dirname, '/var.js'));
출력문을 확인해보면 join은 절대 경로를 따르고 resolve는 상대 경로를 따른다.
\\와 \ 차이 :
\는 윈도 경로 구분자이다.
\\는 자바스크립트 문자열 안에서 사용(\가 특수문자라 \\로 이스케이프 해준 것이다).
윈도우에서 POSIX path를 쓰고 싶다면 :
- path.posix 객체 사용하면 된다.
- POSIX에서 윈도 path를 쓰고 싶다면 : path.win32 객체를 사용하면 된다.