목차
- path모듈이란?
- 모듈가져오기
- path모듈 사용하기(자주 쓰는 속성과 메서드들)
- join() 메서드와 resolve() 메서드 차이
#1. path 모듈이란?
- 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈
- 운영체제별로 구분자가 다르기 때문에 필요한 모듈
[참고] 경로 표현에 따른 운영체제 분류(크게 윈도타입과 POSIX 타입으로 구분)
- 윈도: C:\Users\workspace
- POSIX: /home/workspace
#2. 모듈 가져오기
const paht = require('path')
#3. path 모듈 사용하기
3-1. 자주 쓰이는 속성
1-1) 경로의 구분자 확인
path.sep // 윈도우는 \, POSIX는 /
1-2) 윈도우즈에서 POSIX 스타일 경로 반환하기
path.posix.sep // \반환
1-3) POSIX에서 윈도우즈 스타일 경로 반환하기
console.log(path.posix.sep) // /반환
2) 환경 변수의 구분자 확인
path.delimiter // 윈도는 ; POSIX는 :
[참고] 환경변수 PATH를 콘솔창에 찍어보면 여러 개의 경로가 2)로 확인한 구분자로 구분되어 있음을 알 수 있다.
console.log( process.env.PATH )
3-2. 자주 쓰이는 메서드-인자값이 문자열(string)
1) dirname() 메서드
- 파일이 위치한 디렉토리 경로 확인
path.dirname(경로)
[작성 예시]
path.dirname('/Users/apple/Documents/workspace/path.js')
// /Users/apple/Documents/workspace
2) extname() 메서드
- 파일의 확장자 확인
path.extname(경로)
[작성 예시]
path.extname('server.js') //js(확장자명) 반환
3)basename() 메서드
- 파일의 이름(확장자 포함)을 표시
- 파일의 이름만 표시하고 싶다면 두번째 인자값으로 파일의 확장자 작성하면됨
path.basename(경로, 확장자)
[사용 예시]
path.basename('/Users/apple/Documents/workspace/path.js')
//path.js 반환
path.basename('/Users/apple/Documents/workspace/path.js',path.extname('path.js'))
//path
path.basename('/Users/apple/Documents/workspace/path.js','js')
//path.
//2번의 인자값인 js 제외하고 나옴
path.basename('/Users/apple/Documents/workspace/path.js','.js')
//path
4) format()메서드
- path.parse()한 객체를 파일경로로 합침
path.format(객체)
let pathFormat = path.format({
dir: '/Users/apple/Documents/workspace',
name: 'path',
ext: '.js'
})
console.log(pathFormat) // 반환 : /Users/apple/Documents/workspace/path.js
5) isAbsolute()메서드
- 파일의 절대/상대 경로 여부 확인
- 절대경로일 경우 값은 true
- 상대경로일 경우 값은 false
path.isAbsolute(경로)
6) join() 메서드
- 인자값을 넣어서 하나의 경로로 합침
- 경로를 상대경로로 처리해서 앞의 경로를 존중함
- 다음에 오는 인자값에 절대 경로가 있는 경우 조인은 절대 경로를 무시
path.join()
console.log(path.join(__dirname,'path.js'))
// /Users/cherry/Documents/workspace/path.js
7) resolve() 메서드
- 경로를 절대경로로 인식해서, 앞의 경로를 무시 (절대 경로를 제외한 나머지가 확인)
path.resolve(__dirname,'path.js')
/ //Users/cherry/Documents/workspace/path.js
#4 join() 메서드와 resolve() 메서드의 차이점
- 뒤에 오는 인자값에 '/' 넣게 되면 결과 값 달라짐
let dir1 = path.join(__dirname,'/path.js')
console.log(dir1)
// /Users/cherry/Documents/workspace/path.js
let dir2 = path.resolve(__dirname,'/path.js')
console.log(dir2)
// /path.js
join() 메서드 | resolce() 메서드 |
경로를 상대경로로 처리해서 앞의 경로를 존중함 다음에 오는 인자값에 절대 경로가 있는 경우 조인은 절대 경로를 무시 |
경로를 절대경로로 인식해서, 앞의 경로를 무시 절대 경로를 제외한 나머지 반환 |
인자값을 넣어서 하나의 경로로 합침 |
'node JS > 2. 노드 내장 모듈' 카테고리의 다른 글
fs(file system): 노드 내장모듈 (0) | 2022.06.20 |
---|---|
os : 노드 내장 모듈 (0) | 2022.03.15 |
댓글