Node.js बैकएंड विकास बूटकैंप · पाठ

फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना

fs मॉड्यूल का उपयोग करके Node.js में फ़ाइलें समकालिक और अतुल्यकालिक, दोनों तरीकों से पढ़ना और लिखना सीखें, और जानें कि स्ट्रीम्स बड़ी मात्रा में डेटा को कुशलता से संसाधित करने में कैसे मदद करती हैं।

पाठ 4, कुल 4 में से13 चरण

फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना, CoddyKit पर Node.js बैकएंड विकास बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Node.js बैकएंड विकास बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

फ़ाइल सिस्टम क्यों महत्वपूर्ण है

अधिकांश बैकएंड में अंततः डिस्क पर फ़ाइलें पढ़ी या लिखी जाती हैं — लॉग, कॉन्फ़िगरेशन, अपलोड और रिपोर्ट। Node का अंतर्निहित fs मॉड्यूल यह सब संभालता है; बस इसे require करें।

const fs = require('fs');
console.log(typeof fs.readFile);

समकालिक बनाम अतुल्यकालिक

अधिकांश fs विधियाँ दो रूपों में आती हैं: sync (जैसे readFileSync) इवेंट लूप को रोकता है, जबकि async ऐसा नहीं करता। सर्वरों पर हमेशा async को प्राथमिकता दें।

const fs = require('fs');
const data = fs.readFileSync('config.txt', 'utf8');
console.log(data);

फ़ाइल को अतुल्यकालिक रूप से पढ़ना

पारंपरिक कॉलबैक रूप में पहले त्रुटि और फिर डेटा मिलता है। डेटा का उपयोग करने से पहले हमेशा err जाँचें — गुम फ़ाइल या गलत अनुमति की जानकारी वहीं मिलती है।

const fs = require('fs');
fs.readFile('notes.txt', 'utf8', (err, data) => {
  if (err) { console.error('Failed:', err.message); return; }
  console.log('File says:', data);
});

प्रॉमिस-आधारित API

आधुनिक Node fs/promises के अंतर्गत प्रॉमिस-आधारित API उपलब्ध कराता है — यह async/await के साथ पूरी तरह उपयुक्त है और कॉलबैक की नेस्टिंग से बचाता है।

const fs = require('fs/promises');
async function load() {
  const data = await fs.readFile('notes.txt', 'utf8');
  console.log(data);
}
load();

फ़ाइलें लिखना

फ़ाइल बनाने या उसे अधिलेखित करने के लिए writeFile का उपयोग करें। फ़ाइल नहीं है? वह बना दी जाएगी। फ़ाइल मौजूद है? उसकी पूरी सामग्री बदल दी जाएगी।

const fs = require('fs/promises');
async function save() {
  await fs.writeFile('output.txt', 'Hello from Node!');
  console.log('Saved.');
}
save();

अधिलेखन के बजाय जोड़ना

किसी फ़ाइल की मौजूदा सामग्री मिटाए बिना उसमें जोड़ने के लिए appendFile का उपयोग करें — बढ़ती हुई लॉग फ़ाइलों के लिए यही उपयुक्त है।

const fs = require('fs/promises');
async function log(line) {
  await fs.appendFile('app.log', line + '\n');
}
log('Server started');

पथों के साथ काम करना

स्थिर रूप से लिखे गए पथ अलग-अलग ऑपरेटिंग सिस्टम पर काम नहीं कर सकते। path मॉड्यूल इस समस्या को हल करता है: path.join सही विभाजक का उपयोग करता है और __dirname वर्तमान फ़ाइल का फ़ोल्डर बताता है।

const path = require('path');
const full = path.join(__dirname, 'data', 'users.json');
console.log(full);

फ़ाइल मौजूद है या नहीं, जाँचना

पहले मौजूदगी की जाँच न करें — इससे रेस कंडीशन का जोखिम रहता है। सीधे ऑपरेशन आज़माएँ और त्रुटि पकड़ें; गुम फ़ाइल के लिए ENOENT कोड वाली त्रुटि आती है।

const fs = require('fs/promises');
async function read() {
  try {
    return await fs.readFile('maybe.txt', 'utf8');
  } catch (err) {
    if (err.code === 'ENOENT') return 'default content';
    throw err;
  }
}

स्ट्रीम क्यों मौजूद हैं

readFile से 2 GB की फ़ाइल पढ़ने पर वह पूरी मेमोरी में लोड हो जाती है — इससे क्रैश होने की पूरी संभावना रहती है। स्ट्रीम डेटा को छोटे-छोटे हिस्सों में संसाधित करते हैं, जिससे मेमोरी का उपयोग कम रहता है।

const fs = require('fs');
const stream = fs.createReadStream('huge.log', 'utf8');
stream.on('data', chunk => console.log('Got', chunk.length, 'bytes'));

स्ट्रीम को पाइप से जोड़ना

स्ट्रीम की असली शक्ति pipe में है: पढ़ने योग्य स्ट्रीम को सीधे लिखने योग्य स्ट्रीम से जोड़ें। Node बैकप्रेशर संभालता है, इसलिए तेज़ रीडर धीमे राइटर पर अत्यधिक डेटा नहीं भेजेगा।

const fs = require('fs');
const read = fs.createReadStream('input.txt');
const write = fs.createWriteStream('copy.txt');
read.pipe(write);

निर्देशिकाओं की सूची बनाना और उन्हें बनाना

fs मॉड्यूल फ़ोल्डर भी संभालता है: mkdir निर्देशिकाएँ बनाता है (नेस्टेड पथों के लिए { recursive: true } जोड़ें), और readdir सामग्री की सूची देता है।

const fs = require('fs/promises');
async function setup() {
  await fs.mkdir('uploads', { recursive: true });
  const files = await fs.readdir('.');
  console.log(files);
}
setup();

त्वरित जाँच

फ़ाइल ऑपरेशनों की अपनी समझ की जाँच करें।

पुनरावलोकन

अब आप फ़ाइल सिस्टम के साथ काम कर सकते हैं: fs के sync/कॉलबैक/प्रॉमिस API, सर्वरों पर async, मूलभूत I/O, सभी प्लेटफ़ॉर्म पर काम करने वाला path, और बड़ी फ़ाइलों के लिए स्ट्रीम।

शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
92

अक्सर पूछे जाने वाले प्रश्न

क्या “फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना” पाठ निःशुल्क है?

हाँ—“फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना” में मैं क्या सीखूँगा?

fs मॉड्यूल का उपयोग करके Node.js में फ़ाइलें समकालिक और अतुल्यकालिक, दोनों तरीकों से पढ़ना और लिखना सीखें, और जानें कि स्ट्रीम्स बड़ी मात्रा में डेटा को कुशलता से संसाधित करने में कैसे मदद करती हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Node.js बैकएंड विकास बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Node.js बैकएंड विकास बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Node.js बैकएंड विकास बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Node.js बैकएंड विकास बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Node.js बैकएंड विकास बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Node.js और NPM का परिचय
  2. Node.js मॉड्यूल प्रणाली की व्याख्या
  3. अतुल्यकालिक JavaScript और इवेंट लूप
  4. फ़ाइल सिस्टम और स्ट्रीम्स के साथ काम करना
← Node.js बैकएंड विकास बूटकैंप पर वापस जाएँ