Node.js 파일 경로
시스템 파일 경로
시스템의 모든 파일에는 경로가 있습니다. Linux 및 macOS에서 경로는 다음과 같을 수 있습니다. /users/joe/file.txt
반면에 Windows 컴퓨터는 C:\users\joe\file.txt
와 같이 다른 구조를 가지고 있습니다.
애플리케이션에서 경로를 사용할 때는 이러한 차이점을 고려해야 하므로 주의해야 합니다.
path
모듈 사용
다음과 같이 파일을 사용하여 이 모듈을 포함합니다.
javascript
const path = require('node:path')
그리고 해당 메서드 사용을 시작할 수 있습니다.
경로에서 정보 가져오기
경로가 주어지면 다음과 같은 메서드를 사용하여 정보를 추출할 수 있습니다.
dirname
: 파일의 상위 폴더를 가져옵니다.basename
: 파일 이름 부분을 가져옵니다.extname
: 파일 확장자를 가져옵니다.
예시
javascript
const path = require('node:path')
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txt
javascript
import path from 'node:path'
const notes = '/users/joe/notes.txt'
path.dirname(notes) // /users/joe
path.extname(notes) // .txt
basename
에 두 번째 인수를 지정하여 확장자를 제외한 파일 이름을 가져올 수 있습니다.
javascript
path.basename(notes, path.extname(notes)) // notes
경로 작업
path.join()
을 사용하여 경로의 두 개 이상의 부분을 결합할 수 있습니다.
javascript
path.join('/users', 'joe', 'file.txt') // /users/joe/file.txt
path.resolve()
를 사용하여 상대 경로의 절대 경로 계산을 가져올 수 있습니다.
javascript
path.resolve('joe.txt') // 내 홈 폴더에서 실행하는 경우 /Users/joe/joe.txt
path.resolve('tmp', 'joe.txt') // 내 홈 폴더에서 실행하는 경우 /Users/joe/tmp/joe.txt
이 경우 Node.js는 단순히 현재 작업 디렉터리에 /joe.txt
를 추가합니다. 두 번째 매개변수를 폴더로 지정하면 resolve
는 첫 번째 매개변수를 두 번째 매개변수의 기준으로 사용합니다.
첫 번째 매개변수가 슬래시로 시작하면 절대 경로임을 의미합니다.
javascript
path.resolve('/etc', 'joe.txt') // /etc/joe.txt
path.normalize()
는 .
또는 ..
와 같은 상대 지정자 또는 이중 슬래시가 포함된 경우 실제 경로를 계산하려는 또 다른 유용한 함수입니다.
javascript
path.normalize('/users/joe/../test.txt') // /users/test.txt
resolve
와 normalize
는 모두 경로가 존재하는지 여부를 확인하지 않습니다. 그저 받은 정보를 기반으로 경로를 계산할 뿐입니다.