बिल्ट-इन path मॉड्यूल सर्व ऑपरेटिंग सिस्टमवर फाइल पाथ योग्य प्रकारे तयार करतो आणि हाताळतो. / सह पाथ स्ट्रिंग्सची हाताळी concatenation Windows वर तुटते (जिथे \ वापरतात) आणि edge cases चुकीने हाताळते — path हे सर्व विश्वस्तपणे हाताळते.
बिल्ट-इन path मॉड्यूल सर्व ऑपरेटिंग सिस्टमवर फाइल पाथ योग्य प्रकारे तयार करतो आणि हाताळतो. / सह पाथ स्ट्रिंग्सची हाताळी concatenation Windows वर तुटते (जिथे \ वापरतात) आणि edge cases चुकीने हाताळते — path हे सर्व विश्वस्तपणे हाताळते.
// ❌ fragile, OS-dependent, error-prone
const filePath = baseDir + "/" + "sub" + "/" + fileName;
// breaks on Windows (\), doubles slashes if baseDir ends in /, etc.
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 योग्य विभाजक घालते, डुप्लिकेट/trailing slashes संक्षिप्त करते, आणि ../. खंड सोडवते.
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
// 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));
वर्तमान फाइलच्या सापेक्ष पाथ तयार करणे (__dirname सह, किंवा त्याचे ESM समतुल्य) फाइलांचा संदर्भ घेण्याचा सुरक्षित मार्ग आहे — ज्या ठिकाणाहून प्रक्रिया सुरू झाली त्याच्यापासून स्वतंत्र.
path.join → just joins segments (relative stays relative)
path.resolve → produces an ABSOLUTE path (resolves from cwd / right-to-left)
स्ट्रिंग concatenation ऐवजी path वापरल्याने फाइल-हाताळणी कोड क्रॉस-प्लॅटफॉर्म आणि मजबूत बनते — Mac/Linux वर लिहिला गेलेला कोड Windows वर तुटतो किंवा concatenation विकृत पाथ तयार करते तेव्हा बग्सचा एक वारंवार स्रोत.
हा एक लहान सवय आहे ज्याचे विश्वासार्हतेचे फायदे मोठे आहेत, आणि join vs resolve जाणून घेणे, आणि ESM मध्ये __dirname कसे मिळवायचे हे जाणून घेणे, फाइल सिस्टेम स्पर्श करणार्या कोणत्याही Node प्रोजेक्टमधील दैनंदिन पाथ गरजा पूरण करते.