node.js이 기본으로 제공하는 path모듈은
파일/폴더/디렉터리 등의 경로를 편리하게 설정할 수 있는 기능을 제공한다.
내 경우에도 node.js 개발 시에는
'안전하게' 경로를 설정하기위해 path모듈의 join(), resolve() 메서드는 꼭 활용하는 편이다.
*** 참고: 현재 파일/디렉터리 경로 확인 방법은 아래 글 참고
[node.js] 현재 파일/디렉터리 경로 확인 방법: __filename, __dirname
# path 모듈 사용 방법
: path는 node의 내장 모듈이므로 별도 설치 없이 바로 추출하여 사용할 수 있다.
0. 모듈 추출 방법
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
'개발(Development) > JS(자바스크립트)' 카테고리의 다른 글
[자바스크립트] HTML에서 특정 텍스트가 포함된 요소(태그)를 클릭하는 방법 (0) | 2021.10.18 |
---|---|
[자바스크립트] 코드로 HTML에 다른 js파일을 로드하는 방법 (0) | 2021.07.09 |
[node.js] 현재 파일/디렉터리 경로 확인 방법: __filename, __dirname (0) | 2021.07.09 |
[자바스크립트] JSON형식 직렬화/역직렬화 방법 (0) | 2021.07.09 |
[자바스크립트] div, p, a, span 텍스트 복사(copy)기능 구현 방법 (0) | 2021.07.08 |
댓글