Práce s cestami k souborům v Node.js
Jako nový vývojář ve firmě Tailwind Traders potřebujete vědět, jak spravovat cesty k souborům a složkám. Pokud byste ale měli spoustu souborů nebo složek, bylo by ruční sestavování cest obtížné. Node.js poskytuje několik předdefinovaných konstant a nástrojů, které usnadňují vytváření cest k souborům.
Určení aktuálního adresáře pomocí __dirname
Někdy nevíte, ve kterém adresáři program běží. Chcete, aby používal cestu k aktuálnímu adresáři.
📂 stores
📂 201
📂 sales
Node.js zpřístupňuje úplnou cestu k aktuálnímu adresáři přes konstantu __dirname
.
console.log(__dirname);
Pokud tento kód spustíte ze složky sales v následující struktuře složek, _dirname
hodnota je:
/stores/201/sales
Práce s cestami s modulem path
Cesty se používají tak často, že Node.js obsahuje modul s názvem path určený pro práci s cestami.
Stejně jako modul fs se modul path dodává s Node.js a není nutné ho instalovat. Stačí na něj odkázat na začátku souboru.
const path = require("path");
Spojení cest pomocí path.join
Modul path pracuje s konceptem cest k souborům a složkám, což jsou pouhé řetězce. Pokud byste například chtěli získat cestu ke složce stores/201, můžete k tomu použít modul path.
const currentPath = path.join("stores", "201");
console.log(currentPath); // stores/201
const fullPath = path.join(__dirname, "stores", "201");
console.log(fullPath); // /nodejs-files/stores/201
Důvod, proč byste místo zřetězení řetězců použili modul path, spočívá v tom, že váš program může běžet ve Windows nebo Linuxu. Modul cesty správně formátuje cesty pro jakýkoli operační systém, na kterém běží. V předchozím příkladu by metoda path.join
ve Windows vrátila stores\201
se zpětným lomítkem místo lomítka.
Určení přípon souborů pomocí path.extname
Modul path také může identifikovat rozšíření názvu souboru. Pokud máte soubor a chcete zjistit, jestli se jedná o soubor JSON, můžete použít metodu path.extname
.
console.log(path.extname("sales.json"));
Výstup je:
.json
Tip
Modulu path je jedno, jestli věci skutečně existují. Cesty jsou koncepční, nikoli fyzické. Jen za vás sestavuje a parsuje řetězce.
Získání všeho, co potřebujete vědět o souboru nebo cestě
Modul path obsahuje množství různých metod, které dělají různé věci. Většinu informací, které potřebujete vědět o cestě nebo souboru, ale získáte pomocí metody parse
. Tato metoda vrátí objekt obsahující: aktuální adresář, ve kterém jste, název souboru, příponu názvu souboru a dokonce i název souboru bez přípony.
const currentPath = path.parse("stores/201/sales.json")
console.log(currentPath);
const fullPath = path.join(__dirname, "stores", "201", "/sales.json");
console.log(path.parse(fullPath));
Výstup je:
{
root: '',
dir: 'stores/201',
base: 'sales.json',
ext: '.json',
name: 'sales'
}
{
root: '/',
dir: '/workspaces/node-essentials/nodejs-files/stores/201',
base: 'sales.json',
ext: '.json',
name: 'sales'
}
V modulu path existuje mnoho užitečnějších metod, ale zde vysvětlené metody jsou základní koncepty, které budete pravděpodobně používat nejčastěji. V dalším cvičení použijete modul path k sestavení cest a identifikaci souborů .json.