Module na path da aka gina cikin sashe yana gina da kuma sarrafa hanya ga fayil daidai a kan inabaɗi ƙwaɗi. Yin haɗa hanya kwalantar da /_nan da hannu yana katsewa kan Windows (wanda ke amfani \) kuma yana rashin kyau sarrafa yanayin banƙanci — path` yana sarrafa duka haka ta tawada.
Matsala tare da haɗa kwalantar
// ❌ fragile, OS-dependent, error-prone
const filePath = baseDir + "/" + "sub" + "/" + fileName;
// breaks on Windows (\), doubles slashes if baseDir ends in /, etc.
Gyara: path.join
import path from "path";
// ✅ uses the correct separator for the OS, normalizes slashes
const filePath = path.join(baseDir, "sub", fileName);
// Linux/Mac: baseDir/sub/file.txt Windows: baseDir\sub\file.txt
path.join yana saka separator daidai, yana raguwa slashes da aka maimaita/ƙarshe, da kuma yana warware ../. sassan.
Wasu mahimman ayyukan path
path.resolve("src", "app.js"); // → ABSOLUTE path from the cwd
path.basename("/a/b/file.txt"); // "file.txt"
path.dirname("/a/b/file.txt"); // "/a/b"
path.extname("file.txt"); // ".txt"
path.parse("/a/b/file.txt"); // { dir, base, name, ext }
path.sep; // "/" or "\" depending on OS
Samun jerin gida na fayil na yanzu
// CommonJS — built-in globals
const configPath = path.join(__dirname, "config.json");
// ES Modules — __dirname doesn't exist; derive it from import.meta.url
import { fileURLToPath } from "url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
Gina hanya dangi da fayil na yanzu (tare da __dirname, ko kuma daidaita ESM) shine hanya mababbaki don tunawa da fayil — ba tare da la'akari daga inda aka fara jari.
join da resolve
path.join → just joins segments (relative stays relative)
path.resolve → produces an ABSOLUTE path (resolves from cwd / right-to-left)
Me ya sa haka importante
Amfani da path a maimakon haɗa kwalantar yana sa code na sarrafa fayil cikin gida da karfi — kabahin aiki mai yawa na kuskure lokacin da aka rubutu code akan Mac/Linux yana katsewa akan Windows, ko lokacin da haɗa ke samarwa paths mara kyau.
Gari ne kaɗan ɗaya mai amfani abubuwan tabbaci masu girma, da sanin join da resolve, da kuma yadda ake samun __dirname a ESM, yana rufe bukataccen hanya na yau da gida a kowane aikin Node wanda ya yi affil da tsarin fayil.
