Node.js में फ़ाइल सिस्टम के साथ कार्य करना: पूर्ण गाइड
आधुनिक वेब डेवलपमेंट में, फ़ाइल सिस्टम के साथ कुशलतापूर्वक कार्य करने की क्षमता बैकएंड डेवलपर के प्रमुख कौशलों में से एक है। Node.js एक शक्तिशाली और लचीला मॉड्यूल fs (File System) प्रदान करता है, जो आपको फ़ाइलों और निर्देशिकाओं के साथ सभी बुनियादी संचालन करने की अनुमति देता है: पढ़ना, लिखना, हटाना, नाम बदलना और भी बहुत कुछ। इस लेख में, हम विस्तार से समझेंगे कि Node.js में फ़ाइल सिस्टम के साथ कैसे कार्य करें, सिंक्रोनस और एसिंक्रोनस विधियों पर विचार करेंगे, और पथों के साथ कार्य करना भी सीखेंगे।
fs मॉड्यूल को शामिल करना और बुनियादी सिद्धांत
Node.js में फ़ाइल सिस्टम के साथ कार्य शुरू करने के लिए, बिल्ट-इन मॉड्यूल fs को शामिल करना आवश्यक है। यह कोड की एक पंक्ति से किया जाता है:
const fs = require('fs');fs मॉड्यूल सिंक्रोनस और एसिंक्रोनस दोनों विधियाँ प्रदान करता है। एसिंक्रोनस विधियाँ आमतौर पर अंतिम तर्क के रूप में एक callback फ़ंक्शन लेती हैं और production कोड के लिए पसंद की जाती हैं, क्योंकि वे event loop को ब्लॉक नहीं करती हैं। सिंक्रोनस विधियाँ Sync पर समाप्त होती हैं और एप्लिकेशन इनिशियलाइज़ेशन या स्क्रिप्ट में उपयोगी हो सकती हैं।
इसके अलावा, Node.js 10 से शुरू होकर, fs/promises के साथ कार्य उपलब्ध है - विधियों का एक संस्करण जो प्रॉमिस लौटाता है:
const fs = require('fs/promises');इस लेख में, हम मुख्य रूप से प्रॉमिस के साथ एसिंक्रोनस दृष्टिकोण का उपयोग करेंगे, क्योंकि यह सबसे आधुनिक और सुविधाजनक है।
Node.js में फ़ाइलें पढ़ना
फ़ाइलें पढ़ना सबसे सामान्य संचालनों में से एक है। आइए तीन मुख्य तरीकों पर विचार करें।
पूरी फ़ाइल को एक साथ पढ़ना (एसिंक्रोनस)
विधि fs.readFile() फ़ाइल की सामग्री को पूरी तरह से मेमोरी में पढ़ती है। यह छोटी फ़ाइलों के लिए सुविधाजनक है।
const fs = require('fs/promises');
async function readFileExample() { try { const data = await fs.readFile('example.txt', 'utf8'); console.log('फ़ाइल की सामग्री:', data); } catch (err) { console.error('फ़ाइल पढ़ने में त्रुटि:', err); }}
readFileExample();फ़ाइल को पंक्ति दर पंक्ति पढ़ना (स्ट्रीम रीडिंग)
बड़ी फ़ाइलों के लिए, स्ट्रीम (streams) का उपयोग करना या readline के साथ फ़ाइल को पंक्ति दर पंक्ति पढ़ना बेहतर है:
const fs = require('fs');const readline = require('readline');
async function readFileLineByLine() { const fileStream = fs.createReadStream('large-file.txt'); const rl = readline.createInterface({ input: fileStream, crlfDelay: Infinity });
for await (const line of rl) { console.log('पंक्ति:', line); }}
readFileLineByLine();सिंक्रोनस रीडिंग
यदि आपको अभी फ़ाइल पढ़ने की आवश्यकता है और आप निष्पादन को ब्लॉक करने के लिए तैयार हैं:
const fs = require('fs');
try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data);} catch (err) { console.error(err);}फ़ाइलें लिखना और अपडेट करना
Node.js फ़ाइलों में डेटा लिखने के लिए कई विधियाँ प्रदान करता है।
फ़ाइल में लिखना (ओवरराइट)
विधि fs.writeFile() एक नई फ़ाइल बनाती है या मौजूदा फ़ाइल को ओवरराइट करती है:
const fs = require('fs/promises');
async function writeFileExample() { try { await fs.writeFile('output.txt', 'नमस्ते, दुनिया!', 'utf8'); console.log('फ़ाइल सफलतापूर्वक लिखी गई'); } catch (err) { console.error('लिखने में त्रुटि:', err); }}
writeFileExample();फ़ाइल के अंत में डेटा जोड़ना
यदि मौजूदा डेटा को हटाए बिना डेटा जोड़ने की आवश्यकता है, तो fs.appendFile() का उपयोग करें:
const fs = require('fs/promises');
async function appendToFile() { try { await fs.appendFile('log.txt', `नई प्रविष्टि: ${new Date()}`); console.log('डेटा जोड़ा गया'); } catch (err) { console.error('त्रुटि:', err);