ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeJS Path 그리고 유의할 점
    개발언어/Node.js 2022. 7. 27. 20:49

    Path

    NodeJS는 컴퓨터 위에서 동작하기 때문에 file system에 접근하기가 정말 좋다. 그럴 때 사용할 수 있는 것이 path이다. path라는 것은 말 그대로 경로를 의미한다. 그래서 file의 경로에 접근하거나 경로에 대해서 무언가 처리 해야 할때 유용하게 쓸 수 있는 module이다.

    경로를 표현하는 방법은 운영체제마다 달라 질 수 있는데 log를 이용해서 global 객체에 있는 __dirname과 global에 있는 __filename 이용해서 현재 디렉토리 경로와 file 경로를 출력 할 수있다. 운영체제 마다 file에 접근하는 경로가 다르므로 어떤 file에 접근할 때 현재 사용하는 컴퓨터에 있는 그대로의 경로를 적으면 안된다.

     

    *__dirname : global 객체에 있는 디렉토리 이름

     __filename : global 객체에 있는 파일 이름 

    Path안에 담긴 정보

    그래서 path를 이용해서 운영체제별로 표기법이 달라져도 잘 동작할 수 있도록 만드는 것이 중요하다.

     

    동일한 경로를 이용해서 다양한 정보를 가져올 수 있다.  =>

    basename

    path에 있는 basename을 사용해서 특정한 경로를 전달해 주면 실행결과 filename만 가져와 출력하는 것을 확인할 수 있다. 

     

    dirname

    file이 속한 경로만 가져올 수 있는 api이다.

     

    extension

    file의 확장자만 가져올 수 있는 api이다.

     

    parse

    전체 경로를 하나하나 씩 분리해서 가져올 수도 있다.

     

     

    그래서 간편하게 parsed된 정보를 이용해서 root 혹은 name 같은 것에 접근할 수 있다. 반대로 pase의 실행 결과인 object를 이용해서 string 형태로 변화이 가능하다. path에 있는 format이라는 api를 이용해서 object로 변환되것을 인자로 전달해 주면, 다시 기존의 경로 string으로 변화이 가능하다.

     

     

    path.isAbsolute

    //isAbsolute
    console.log('isAbsolute?',path.isAbsolute(__dirname));
    //절대 경로
    console.log('isAbsolute?',path.isAbsolute('../'));
    //절대 경로에서 한단계 나가는 경로

    출력 결과 =>

    경로가 절대 경로인지 현재 경로에서 상대적인 경로인지 알아보는 메서드이다.

     

    normalize

    //normalize
    console.log(path.normalize('./folder//////sub'));

    출력 결과 =>

    경로에서 error의 요소가 있고, 흠이 있다면 올바로 고쳐주는 메서드이다.

     

    join

    //join
    console.log(__dirname + "/" + "image");
    console.log(__dirname + path.sep + "image");
    console.log(path.join(__dirname, "image"));

    출력 결과 =>

    현재있는 디렉토리안에 새로운 폴더를 만들려면 -> 첫번째 처럼 문자열을 이용해서 인위적으로 경로를 만들어 낼 수 는 있지만 경로를 쓸 수도 있지만 path.sep을 사용해서 운영 체제에 맞는 경로구분자를 불러와서 사용할 수도 있다.

     

    더 나아가 마지막 처럼 join 메서드를 사용해서 첫번째 인자로는 폴더를 추가하고 싶은 디렉토리 경로를 두번째 인자로는 폴더이름을 문자열로 전달하면 된다.

     

    ⭐개발Tip

    운영체제 별로 경로 구분자를 표기하는 표기법이 달라 질 수 있으므로 문자열로 직접 경로 구분자를 작성하기 보다는 path.sep을 사용하거나 join()메서드를 이용해서 운영체제 별로 잘 동작할 수 있도록 만든다.

     

    [출처 -https://academy.dream-coding.com/courses/node ]

    '개발언어 > Node.js' 카테고리의 다른 글

    NodeJS File의 다양한 사용법  (0) 2022.08.02
    NodeJS File async와 asynchronous 그리고 promise  (0) 2022.07.28
    NodeJS Timer와 Call Stack의 연관  (0) 2022.07.09
    NodeJS Process 정보  (0) 2022.07.09
    Node.js-Event-Driven  (0) 2022.07.09

    댓글

Designed by Tistory.