पाठ 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 के सिंगल थ्रेड को रोक देते हैं — जब तक पढ़ना पूरा न हो, कोई और रिक्वेस्ट नहीं संभाली जाती।