Práce s cestami k souborům v Node.js

Dokončeno

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.