Path

»

path

미수정본은 노션에 저장

path모듈이란?

파일/폴더/디렉토리 등의 경로를 편리하게 설정할 수 있는 기능을 제공한다

모듈 추출

ndoe의 내장 모듈이므로 따로 설치가 필요없음

const path = require("path");
1.  path.sep

“현 운영체제의 경로 구분자” 확인 - 맥 /, 윈도우 \

console.log('path.sep:', path.sep);

// path.sep: /
2.  path.dirname(‘파일경로.확장자’)

“파일이 위치한 폴더경로” 확인

console.log(path.dirname(__filename));

// /Users/curryyou/dev/VS_Code_Projects/TestProject
3-1.  path.basename(‘파일경로.확장자’)

“파일명.확장자” 확인

console.log(path.basename(__filename));

// test.js
3-2.  path.basename(‘파일경로.확장자’, ‘.확장자’)

“파일 이름(확장자 제거)” 확인

console.log(path.basename(__filename, '.js'));

// test
4.  path.extname(‘파일경로.확장자’)

“확장자” 확인

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

// .js
5.  path.parse(__filename)

파일을 root(루트경로), dir(디렉터리경로), base(파일명.확장자), ext(.확장자), name(파일명) 으로 파싱한 객체 생성

console.log(path.parse(__filename));

/*
{
  root: '/',
  dir: '/Users/curryyou/dev/VS_Code_Projects/TestProject',
  base: 'test.js',
  ext: '.js',
  name: 'test'
}
*/
6.  path.format(객체)

파싱된 파일 경로 객체를 다시 ‘문자열’로 합침

console.log(path.format(path.parse(__filename)));

// path.parse(__filename)로 파싱한 객체를 parth.format()으로 문자열로 변환// /Users/curryyou/dev/VS_Code_Projects/TestProject/test.js
7.  path.normalize(‘경로’)

//나 \ 등으로 경로 구분자를 잘못 사용해도, 알아서 정상 경로로 변환해줌

console.log(path.normalize('/user///hello/////ok/index.js'));

// /user/hello/ok/index.js

********* 아래 메서드는 자주 사용 *********

8.  path.join(‘경로’, ‘경로’, …)

여러개의 경로를 알아서 합쳐줌

상위경로(..), 현재경로(.)도 알아서 처리

중간에 /를 만나면 앞의 경로에 이어서 ‘상대경로’로 처리

console.log(path.join(__dirname, '/a/b', '..', './b', 'c', '/d'));

// /Users/curryyou/dev/VS_Code_Projects/TestProject/a/b/c/d
9.  path.resolve(‘경로’, ‘경로’, …)

여러개의 경로를 알아서 합쳐줌

상위경로(..), 현재경로(.)도 알아서 처리

join()과 차이점: 중간에 /를 만나면 앞에 경로 다 무시하고, ‘맨 처음부터’ 다시 시작

console.log(path.resolve(__dirname, '/a/b', '..', './b', 'c', '/d'));

// /d

참조

[node.js] path 모듈 사용 방법 정리: 파일/디렉터리 경로 처리