आप fs/promises मॉड्यूल से फ़ाइलें पढ़ते और लिखते हैं और path मॉड्यूल की बदौलत विश्वसनीय पथ बनाते हैं।
इस पाठ को Kodokon में खोलेंब्राउज़र में, JavaScript को आपकी डिस्क की फ़ाइलों को छूने की अनुमति नहीं है: यह सुरक्षा का मामला है। दूसरी ओर, Node सीधे आपकी मशीन पर चलता है और fs मॉड्यूल (file system) की बदौलत फ़ाइलें पढ़ और लिख सकता है। हम इसका आधुनिक संस्करण, fs/promises उपयोग करेंगे, जिसका हर फ़ंक्शन एक प्रॉमिस लौटाता है - आप उन्हें await से प्रतीक्षा करना पहले से जानते हैं, जो JavaScript ट्रैक में देखा गया। imports में node: उपसर्ग पर ध्यान दें: यह स्पष्ट करता है कि मॉड्यूल Node से ही आता है, node_modules से नहीं। और अच्छी खबर: किसी ES मॉड्यूल में, await किसी घेरने वाले फ़ंक्शन के बिना, सीधे फ़ाइल स्तर पर काम करता है।
import { writeFile } from "node:fs/promises";
await writeFile("notes.txt", "First note\n");
console.log("File created!");पढ़ने के लिए, readFile के साथ वही तर्क। इसका दूसरा पैरामीटर आवश्यक है: utf8 एन्कोडिंग को दर्शाता है, यानी डिस्क पर संग्रहीत बाइट्स को पठनीय टेक्स्ट में बदलने का तरीका। यदि आप इसे छोड़ देते हैं, तो Node किसी स्ट्रिंग के बजाय एक Buffer ऑब्जेक्ट - कच्चे बाइट्स - लौटाता है।
import { readFile } from "node:fs/promises";
const text = await readFile("notes.txt", "utf8");
console.log(text);आइए पथ (paths) की बात करें। एक सापेक्ष (relative) पथ (notes.txt, data/log.txt) वर्तमान फ़ोल्डर से शुरू होता है; एक निरपेक्ष (absolute) पथ (C:\... या /home/...) डिस्क की जड़ से शुरू होता है। एक क्लासिक जाल: Windows फ़ोल्डरों को \ से अलग करता है, macOS और Linux / से। path मॉड्यूल इस समस्या को हल करता है: path.join सिस्टम चाहे जो भी हो, सही विभाजक के साथ टुकड़ों को जोड़ देता है। आइए इसे mkdir के साथ जोड़ें, जो एक फ़ोल्डर बनाता है।
import path from "node:path";
import { mkdir, writeFile } from "node:fs/promises";
const file = path.join("data", "log.txt");
await mkdir("data", { recursive: true });
await writeFile(file, "First log\n");
console.log("Written to:", file);