[Node.js] path

Updated:

  • 모든 file system에는 경로가 존재
    • ex) /users/eom/file.txt
  • path 모듈을 이용하여 경로와 관련된 작업을 수행
const path = require('path')

경로 정보를 가져오기

  • dirname : 파일의 부모 폴더 경로 가져오기
  • basename : 파일 이름 가져오기
  • extname : 확장자 가져오기
const notes = '/users/joe/notes.txt'

path.dirname(notes) // /users/joe
path.basename(notes) // notes.txt
path.extname(notes) // .txt
  • 순수한 file name만 가져오고 싶다면
path.basename(notes, path.extname(notes)) //notes

경로를 이용한 작업

  • path.join() 을 이용하여 두 개 이상의 파트 이어주기
const name = 'joe'
path.join('/', 'users', name, 'notes.txt') //'/users/joe/notes.txt'
  • path.resolve()를 이용해 상대경로를 절대 경로로 변환
  • 파라미터를 두 개 쓰면, 첫 번째가 base로 사용
  • 만약 / 가 앞에 붙은 파라미터면, 그것이 절대 경로를 의미
path.resolve('joe.txt') //'/Users/joe/joe.txt' if run from my home folder

path.resolve('tmp', 'joe.txt') //'/Users/joe/tmp/joe.txt' if run from my home folder

path.resolve('/etc', 'joe.txt') //'/etc/joe.txt'
  • path.normalize()를 이용해 ., .., // 와 같은 경로 이동을 모두 계산
  • 즉, 해당 타겟에 최소한의 디렉토리를 거쳐 이동하는 경로
  • context-independent
path.normalize('/users/joe/..//test.txt') ///users/test.txt
  • resolve, normalize 모두 path가 존재하는지 확인하지 않음
  • 단순 주어진 파라미터 정보를 이용해 경로를 계산

ref :
Path
Node.js File Paths
path.normalize vs. path.resolve

Leave a comment