본문 바로가기
Archive

[9] path

by livemehere 2022. 3. 27.

경로관련 문제를 쉽게 해결하자

OS별로 경로를 구분하는 구분자가 다르고, 절대경로,상대경로를 적절히 사용하곤 합니다.

또 현재 실행되고있는 파일의 경로, 혹은 실행되고있는 파일의 상위폴더의 정보를 다루기위해서는 직접 경로를 지정해주어도 되지만,

그렇게 한다면 window, mac, linux 등의 각각의 OS에서 동일한 구분자를 사용하지 않는 문제가 발생합니다

아래의 코드와 주석을 참고하시기 바라겠습니다.

const path = require("path");

console.log(__dirname); // /Users/gongtaemin/Documents/노드에대한 모든것/10-path
console.log(__filename); // /Users/gongtaemin/Documents/노드에대한 모든것/10-path/index.js

console.log(path.sep); // OS별 구분자 '/'
console.log(path.delimiter); // OS별 환경변수 구분자 ':'

console.log(path.basename(__filename)); // index.js
console.log(path.basename(__filename, ".js")); // index 확장자명 추출
console.log(path.basename(__dirname)); // 10-path

console.log(path.dirname(__filename)); // /Users/gongtaemin/Documents/노드에대한 모든것/10-path

console.log(path.extname(__filename)); // .js

const parsed = path.parse(__filename);
console.log(parsed);
/**
 * {
  root: '/',
  dir: '/Users/gongtaemin/Documents/노드에대한 모든것/10-path',
  base: 'index.js',
  ext: '.js',
  name: 'index'
}
 * 
 */

console.log(path.format(parsed)); // /Users/gongtaemin/Documents/노드에대한 모든것/10-path/index.js

// 절대겨로인지 아닌지 boolean
console.log(path.isAbsolute(__dirname)); // true
console.log(path.isAbsolute("../")); // false

console.log(path.normalize("./path////////sub")); // 잘못된 경로면 바르게 고쳐줌

// OS에 맞는 구분자를 사용해서 경로를 합쳐줌
console.log(path.join(__dirname, "image")); ///Users/gongtaemin/Documents/노드에대한 모든것/10-path/image
console.log(__dirname + path.sep + "image"); // 같은결과이나 위에것이 더 적절
반응형

'Archive' 카테고리의 다른 글

[11] Buffer  (0) 2022.03.29
[10] file  (0) 2022.03.29
[8] timer 와 callstack 의 관계  (0) 2022.03.27
[7] 간단한 ES2015 모듈 시스템  (0) 2022.03.22
[6] node 환경에서의 module 시스템에 대한 모든 이해  (0) 2022.03.22