[Node.js] path module

폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈
운영체제별로 경로 구분자가 다르기 때문에 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// /Users/devsawd/hello-world/index.js
const path = require('path');

console.log('path.sep:', path.sep);
console.log('path.delimiter:', path.delimiter);
console.log('=====================================================================================')
console.log('path.dirname(__filename):', path.dirname(__filename));
console.log('path.extname(__filename):', path.extname(__filename));
console.log('path.basename(__filename):', path.basename(__filename));
console.log('path.basename(__filename):', path.basename(__filename, path.extname(__filename)));
console.log('=====================================================================================')
console.log('path.parse(__filename)', path.parse(__filename));
console.log('=====================================================================================')
console.log(`path.format({
dir: '/Users/devsawd/hello-world',
name: 'index',
ext: '.js',
}));:`, path.format({
dir: '/Users/devsawd/hello-world',
name: 'index',
ext: '.js',
}));
console.log('=====================================================================================')
console.log('path.normalize('/Users/devsawd/hello-world/index.js'):', path.normalize('/Users/devsawd/hello-world/index.js'));
console.log('=====================================================================================')
console.log('path.isAbsolute('/users'):', path.isAbsolute('/users'));
console.log('path.isAbsolute('./home'):', path.isAbsolute('./home'));
console.log('=====================================================================================')
console.log(`path.relative('/Users/devsawd/hello-world/index.js', '/Users'));: `, path.relative('/Users/devsawd/hello-world/index.js', '/Users'));
console.log('__dirname:', __dirname);
console.log('path.join(__dirname, '..', '/Users', '.', 'devsawd'):', path.join(__dirname, '..', '/Users', '.', 'devsawd'));
console.log('path.resolve(__dirname, '..', '/Users', '.', 'devsawd'):', path.resolve(__dirname, '..', '/Users', '.', 'devsawd'));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
hello-world % node index.js
path.sep: /
path.delimiter: :
=====================================================================================
path.dirname(__filename): /Users/devsawd/hello-world
path.extname(__filename): .js
path.basename(__filename): index.js
path.basename(__filename): index
=====================================================================================
path.parse(__filename) {
root: '/',
dir: '/Users/devsawd/hello-world',
base: 'index.js',
ext: '.js',
name: 'index'
}
=====================================================================================
path.format({
dir: '/Users/devsawd/hello-world',
name: 'index',
ext: '.js',
}));: /Users/devsawd/hello-world/index.js
=====================================================================================
path.normalize('/Users/devsawd/hello-world/index.js') /Users/devsawd/hello-world/index.js
=====================================================================================
path.isAbsolute('/users') true
path.isAbsolute('./home'): false
=====================================================================================
path.relative('/Users/devsawd/hello-world/index.js', '/Users'));: ../../..
__dirname: /Users/devsawd/hello-world
path.join(__dirname, '..', '/Users', '.', 'devsawd'): /Users/devsawd/Users/devsawd
path.resolve(__dirname, '..', '/Users', '.', 'devsawd'): /Users/devsawd

path.join()

인자로 받은 경로들을 합쳐서 문자열 형태로 path를 리턴

path.resolve()

기본적으로 path.join과 같지만 오른쪽 인자부터 경로를 합쳐나가며 /를 만나면 절대경로로 인식하고 앞의 인자들을 무시
만약 /를 만나지 못한다면 /현재경로/생성된경로 형태로 결과 리턴