javaScript/nodeJs

노드js 내장모듈// path

부엉이사장 2022. 6. 18. 14:17
const path = require('path');

먼저 모듈을 불러온다.

예전에 그냥 코드 복붙해서 사용할땐 path라는 외장모듈인줄알고 ㅋㅋ npm install path 치면서 했었다.

 

이제 여러가지 기능을 보자.

 

1. path.sep

console.log(path.sep)

콘솔결과에는 백슬러스가 뜨는데 이건 경로에서 쓰이는 단위를 알려준다.

운영체제에 따라 다른데 나는 윈도우를 사용하므로 백슬레시가 나온다.

 

2. path.dirname

console.log(path.dirname(str))

참고로 str은 변수인데 __filename으로 했다.

즉 이 파일이 들어있는 폴더경로를 절대경로로 알려준다.

 

 

3. path.extname(str)

console.log(path.extname(str))

.js가 뜨는데 이 파일의 확장자명을 알려준다.

 

 

4. path.parse(str)

console.log(path.parse(str))

이 경로를 분석해준다. 

이렇게 객체로 경로 분석한걸 가져와준다. 

path.parse(str).dir 등등으로 뽑아서 쓸수도 있음

 

 

5. isAbsolute

console.log(isAbsolute(str))

str의 경로가 절대경로인지 불린값으로 반환한다.

이건 이상하게

const { isAbsolute } = require('path');

라고 쳐줘야 동작이 되더라.

reference에러가 뜨는걸 보면 객체가 path안에 없나? 

 

 

 

6. path.join

요게 좀 특이한게

console.log(path.join(str, str, str))

이렇게 치면 걍 str절대경로를 이어서 합쳐버린다. 

근데 여기서 중요한게 만약 상대경로를 소괄호안에 같이넣으면

console.log(path.join(str, '../'))

str의 경로에서 상대경로로 이동한 경로를 뱉어낸다는 것이다.

 

 

path.relative는 두개 경로 넣으면 이동방법 알려준다네..

cmd이용할때 쓸만할듯.

경로 두개 넣어서 쳐보기 귀찮아서 걍 생략했다.

 

 

또한 중요한건 path모듈은 이런 귀찮은 문제를 해결해준다.

예를들어 자바스크립트에서 ''안에 또다른 ''을 넣으려면 백슬레시를 각각 붙여줬었다.

(요즘은 템플릿문자열 쓰니까 이런실수안하긴하지만)

근데 경로에서 백슬레시 두개씩 쓰는 윈도우라면 경로쓸때마다 백슬레시를 문자로 인식시켜줘야해서

\\두번씩 써야한다. 

이런 귀찮고 실수하기 쉬운 작업을 path모듈이 해결해준다고 한다.