У каждого файла в системе есть путь. В Linux и macOS путь может выглядеть так: /users/joe/file.txt, тогда как компьютеры на Windows отличаются и имеют структуру вроде: C:\users\joe\file.txt
Работая с путями в своих приложениях, нужно быть внимательным, поскольку это различие необходимо учитывать.
Вы подключаете этот модуль в свои файлы через const path = require('node:path'); — и можете начинать пользоваться его методами.
По заданному пути можно извлечь информацию с помощью следующих методов:
dirname: получает родительскую папку файлаbasename: получает часть с именем файлаextname: получает расширение файла
const path = require('node:path');
const notes = '/users/joe/notes.txt';
path.dirname(notes); // /users/joe
path.basename(notes); // notes.txt
path.extname(notes); // .txtПолучить имя файла без расширения можно, указав второй аргумент в basename:
path.basename(notes, path.extname(notes)); // notesСоединить две и более части пути можно с помощью path.join():
const name = 'joe';
path.join('/', 'users', name, 'notes.txt'); // '/users/joe/notes.txt'Вычислить абсолютный путь из относительного можно с помощью path.resolve():
path.resolve('joe.txt'); // '/Users/joe/joe.txt' если запущено из моей домашней папкиВ этом случае Node.js просто добавит /joe.txt к текущей рабочей директории. Если указать вторым параметром папку, resolve будет использовать первый параметр как базу для второго:
path.resolve('tmp', 'joe.txt'); // '/Users/joe/tmp/joe.txt' если запущено из моей домашней папкиЕсли первый параметр начинается со слэша, это означает абсолютный путь:
path.resolve('/etc', 'joe.txt'); // '/etc/joe.txt'path.normalize() — ещё одна полезная функция, которая попытается вычислить фактический путь, когда он содержит относительные указатели вроде . или .. либо двойные слэши:
path.normalize('/users/joe/..//test.txt'); // '/users/test.txt'Ни resolve, ни normalize не проверяют, существует ли путь. Они лишь вычисляют путь на основе полученной информации.