पाठ 10 / 28

fs मॉड्यूल

फ़ाइलें पढ़ना और लिखना, सिंक्रोनस या एसिंक्रोनस रूप से।

फ़ाइल पढ़ना

एसिंक्रोनस, Promise-आधारित API fs/promises के अंतर्गत है।

import { readFile } from "node:fs/promises";

const text = await readFile("notes.txt", "utf8");
console.log(text);

फ़ाइल लिखना

writeFile फ़ाइल को पूरी तरह बना देता है या ओवरराइट कर देता है।

import { writeFile } from "node:fs/promises";

await writeFile("out.txt", "Hello, file!\n");
console.log("saved");

Output:

saved

सिंक बनाम एसिंक

readFileSync काम पूरा होने तक पूरे इवेंट लूप को ब्लॉक करता है — स्टार्टअप पर ठीक है, पर रिक्वेस्ट संभालते सर्वर में जोखिम भरा। वहाँ एसिंक वर्ज़न उपयोग करें।

त्वरित जाँच: रिक्वेस्ट हैंडलर में `readFileSync` से क्यों बचें?

  • यह गुम फ़ाइल पर एरर देता है
  • यह हर दूसरी रिक्वेस्ट के लिए इवेंट लूप को ब्लॉक कर देता है
  • यह टेक्स्ट फ़ाइलें नहीं पढ़ सकता
Answer

यह हर दूसरी रिक्वेस्ट के लिए इवेंट लूप को ब्लॉक कर देता है — सिंक fs कॉल Node के सिंगल थ्रेड को रोक देते हैं — जब तक पढ़ना पूरा न हो, कोई और रिक्वेस्ट नहीं संभाली जाती।