Модуль path (пути) в Node.js

В этом руководстве вы узнаете о модуле path в Node.js. Node.js предоставляет модуль path, который позволяет легко взаимодействовать с путями к файлам. Модуль имеет много полезных свойств и методов для доступа и управления путями в файловой системе.

path — это основной модуль в Node. Поэтому вы можете использовать его без установки:

const path = require('path');

Полезные свойства

Объект path имеет свойство sep, которое представляет разделитель пути для конкретной платформы:

path.sep

path.sep возвращает \ в Windows и / в Linux и macOS.

Объект path также имеет свойство delimiter, которое представляет разделитель пути:

path.delimiter

path.delimiter возвращает ; в Windows и : в Linux и macOS.

Удобные методы

Ниже показаны некоторые удобные методы модуля path, которые вы, вероятно, используете очень часто:

path.basename(path, [,ext])
path.dirname(path)
path.extname(path)
path.format(pathObj)
path.isAbsolute(path)
path.join(...path)
path.normalize(path)
path.parse(path)
path.relative(from, to)
path.resolve(...path)

path.basename(path[, ext])

path.basename() возвращает последнюю часть указанного пути. Например:

let result = path.basename('/public_html/home/index.html');
console.log(result);

Выход:

index.html

Параметр ext отфильтровывает расширение из пути:

let result = path.basename('/public_html/home/index.html','.html');
console.log(result);

Выход:

index

path.dirname(path)

Метод path.dirname() возвращает имя каталога по указанному пути. Например:

let result = path.dirname('/public_html/home/index.html');
console.log(result);

Выход:

/public_html/home

Обратите внимание, что path.dirname() игнорирует конечный каталог.

path.extname(path)

path.extname() возвращает расширение пути. Например:

console.log(path.extname('index.html'));
console.log(path.extname('app.js'));
console.log(path.extname('node.js.md'));

Выход:

.html
.js
.md

path.format(pathObj)

Метод path.format() возвращает строку пути из указанного объекта path.

let pathToFile = path.format({
    dir: 'public_html/home/js',
    base: 'app.js'
});

console.log(pathToFile);

Вывод(в Linux или macOS):

public_html/home/js/app.js

path.isAbsolute(path)

path.isAbsolute() возвращает true, если указанный путь является абсолютным путем.

Например, в Windows:

let result = path.isAbsolute('C:\\node.js\\');
console.log(result); // true

result = path.isAbsolute('C:/node.js/');
console.log(result); // true

result = path.isAbsolute('/node.js');
console.log(result); // true

result = path.isAbsolute('home/');
console.log(result); // false

result = path.isAbsolute('.');
console.log(result); // false

В Linux и macOS:

let result = path.isAbsolute('/node/js/');
console.log(result); // true

result = path.isAbsolute('/node/..');
console.log(result); // true

result = path.isAbsolute('node/');
console.log(result); // false

result = path.isAbsolute('.');
console.log(result); // false

path.join(…paths)

Метод path.join() делает две вещи:

  • Присоединяет к последовательности сегментов пути, используя разделитель для конкретной платформы в качестве разделителя.
  • Нормализует полученный путь и возвращает его.

Например:

let pathToDir = path.join('/home', 'js', 'dist', 'app.js');
console.log(pathToDir);

Вывод(в Windows):

\home\js\dist\app.js

path.parse(path)

Метод path.parse() возвращает объект, свойства которого представляют элементы пути. Возвращаемый объект имеет следующие свойства:

  • root: корень
  • dir: путь к каталогу от корня
  • base: имя файла + расширение
  • name: имя файла
  • ext: расширение

Свойства path.parse(path)

Например, в Windows:

let pathObj = path.parse('d:/nodejs/html/js/app.js');
console.log(pathObj);

Выход:

{
    root: 'd:/',
    dir: 'd:/nodejs/html/js/',
    base: 'app.js',
    ext: '.js',
    name: 'app'
}

В Linux или macOS:

let pathObj = path.parse('/nodejs/html/js/app.js');
console.log(pathObj);

Выход:

{
    root: '/',
    dir: '/nodejs/html/js',
    base: 'app.js',
    ext: '.js',
    name: 'app'
}

path.normalize(path)

Метод path.normalize() нормализует указанный путь. Он также разрешает ‘..’ и ‘.’ сегменты.

Например, в Windows:

let pathToDir = path.normalize('C:\\node.js/module/js//dist');
console.log(pathToDir);

Выход:

C:\node.js\module\js\dist

path.relative(from, to)

path.relative() принимает два аргумента и возвращает относительный путь между ними на основе текущего рабочего каталога.

Например, в Linux или macOS:

let relativePath = path.relative('/home/user/config/','/home/user/js/')
console.log(relativePath);

Выход:

../js

path.resolve(…paths)

Метод path.resolve() принимает последовательность путей или сегментов пути и преобразует ее в абсолютный путь. Метод path.resolve() добавляет каждый последующий путь справа налево, пока не завершит создание абсолютного пути.

Если вы не передадите аргумент в метод path.resolve(), он вернет текущий рабочий каталог.

Например, в Linux или macOS:

console.log("Current working directory:", __dirname);
console.log(path.resolve());

Выход:

/home/john
/home/john

В этом примере метод path.resolve() возвращает путь, который совпадает с текущим рабочим каталогом.

Пример для Linux или macOS:

// Resolve 2 segments with the current directory 
path1 = path.resolve("html", "index.html");
console.log(path1)

// Resolve 3 segments with the current directory 
path2 = path.resolve("html", "js", "app.js");
console.log(path2)

// Treat of the first segment as root and ignore 
// the current working directory 
path3 = path.resolve("/home/html", "about.html");
console.log(path3);

Выход:

/home/john/html/index.html
/home/john/html/js/app.js
/home/html/about.html
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript