Ce face process.cwd / process.chdir
process.cwd() întoarce directorul din care a fost pornit node (cel în care erai în terminal), nu directorul în care se află scriptul. Toate căile relative din fs (readFile("date.json")) se rezolvă față de acest director.
process.chdir(dir) schimbă directorul curent al procesului. Aruncă o eroare dacă directorul nu există. Nu este disponibil în firele de execuție (worker_threads).
Dacă vrei un fișier aflat lângă script, indiferent de unde este pornit, folosește import.meta.dirname, nu process.cwd().
Ce returnează
cwd(): calea absolută, ca șir. chdir(): undefined.
Exemple
Exemplul 1: Căi relative față de directorul curent
Exemplul creează un subdirector, intră în el și arată unde ajunge o cale relativă. Afișăm căile relativ la directorul de pornire, ca să nu depindă de calculator.
import { mkdirSync, writeFileSync, readFileSync } from "node:fs";
import path from "node:path";
const start = process.cwd();
mkdirSync("rapoarte/2026", { recursive: true });
process.chdir("rapoarte/2026");
console.log("Acum sunt în:", path.relative(start, process.cwd()));
writeFileSync("iasi.txt", "Vânzări Iași: 1200 lei");
console.log(readFileSync(path.join(start, "rapoarte/2026/iasi.txt"), "utf8"));
Rezultat
Acum sunt în: rapoarte/2026
Vânzări Iași: 1200 lei
Exemplul 2: Director inexistent
try {
process.chdir("nu-exista");
} catch (eroare) {
console.log(eroare.code);
}
Rezultat
ENOENT
Greșeli frecvente
- Citești
readFile("config.json")într-un script pornit din alt director (de exemplu dintr-un cron sau dinnpm runîn alt pachet): fișierul nu este găsit. Construiește calea cupath.join(import.meta.dirname, "config.json"). - Folosești
process.chdirîntr-o aplicație cu mai multe părți: schimbarea afectează tot procesul și toate căile relative. Preferă căi absolute.
Comenzi înrudite
import.meta.dirname / filename: Calea directorului și a fișierului modulului curent: înlocuitorii pentru __dirname și __filename în module ES.path.resolve / path.relative: Transformă o cale în cale absolută (resolve), calculează drumul dintre două căi (relative) și verifică sau curăță căi.path.join: Lipește mai multe bucăți într-o singură cale, cu separatorul corect pentru sistemul de operare, și curăță ./ și ../.fs.readFile: Citește tot conținutul unui fișier: ca text dacă dai codificarea („utf8”), altfel ca Buffer cu octeții bruți.