JavaScript (Node.js) में CSV के साथ कार्य: लाइब्रेरी और व्यावहारिक उदाहरण
CSV (Comma-Separated Values) सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे सामान्य प्रारूपों में से एक है। Node.js पारिस्थितिकी तंत्र में कई परिपक्व लाइब्रेरी मौजूद हैं जो CSV फ़ाइलों को कुशलतापूर्वक पढ़ने, संसाधित करने और बनाने की अनुमति देती हैं। इस लेख में हम मुख्य उपकरणों, उनकी क्षमताओं की समीक्षा करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।
CSV के साथ कार्य के लिए लोकप्रिय लाइब्रेरी
1. csv-parser — तेज़ स्ट्रीम पार्सर
यह लाइब्रेरी Node.js में CSV पढ़ने के लिए मानक है। यह स्ट्रीम (stream) मोड में काम करती है, जो फ़ाइलों को पूरी तरह से मेमोरी में लोड किए बिना किसी भी आकार की फ़ाइलों को संसाधित करने की अनुमति देती है।
स्थापना:
npm install csv-parserCSV फ़ाइल पढ़ने का उदाहरण:
const fs = require('fs');const csv = require('csv-parser');
const results = [];
fs.createReadStream('data.csv') .pipe(csv()) .on('data', (row) => { results.push(row); }) .on('end', () => { console.log('CSV सफलतापूर्वक पढ़ा गया'); console.log(results.slice(0, 3)); // पहले 3 रिकॉर्ड });मुख्य विशेषताएं:
- कस्टम विभाजकों का समर्थन (डिफ़ॉल्ट रूप से अल्पविराम)
- पहली पंक्ति से स्वचालित रूप से हेडर का पता लगाना
- खाली पंक्तियों को छोड़ने की क्षमता
- स्ट्रीम प्रोसेसिंग के कारण कम मेमोरी खपत
2. csv-stringify — ऑब्जेक्ट से CSV बनाना
यह उपकरण csv परिवार का हिस्सा है और JavaScript ऑब्जेक्ट से CSV स्ट्रिंग या स्ट्रीम उत्पन्न करने के लिए डिज़ाइन किया गया है।
स्थापना:
npm install csv-stringifyCSV में डेटा लिखने का उदाहरण:
const { stringify } = require('csv-stringify');const fs = require('fs');
const data = [ { name: 'अन्ना', age: 28, city: 'मॉस्को' }, { name: 'इवान', age: 35, city: 'सेंट पीटर्सबर्ग' }, { name: 'ओल्गा', age: 22, city: 'कज़ान' }];
const writableStream = fs.createWriteStream('output.csv');const stringifier = stringify({ header: true });
stringifier.pipe(writableStream);data.forEach(row => stringifier.write(row));stringifier.end();
console.log('output.csv फ़ाइल बनाई गई');क्षमताएं:
- विशेष वर्णों (उद्धरण, अल्पविराम) का स्वचालित एस्केपिंग
- कॉलम विभाजक का कॉन्फ़िगरेशन
- कस्टम हेडर का समर्थन
- सिंक्रोनस और एसिंक्रोनस मोड में कार्य
3. csv-writer — सरल और सहज API
यह लाइब्रेरी CSV लिखने के लिए एक सरल इंटरफ़ेस प्रदान करती है, खासकर यदि आप छोटे डेटा वॉल्यूम के साथ काम कर रहे हैं।
स्थापना:
npm install csv-writerलेखन का उदाहरण:
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const csvWriter = createCsvWriter({ path: 'users.csv', header: [ { id: 'id', title: 'ID' }, { id: 'name', title: 'नाम' }, { id: 'email', title: 'ईमेल' } ]});
const records = [ { id: 1, name: 'अलेक्सेई', email: 'alex@example.com' }, { id: 2, name: 'मारिया', email: 'maria@example.com' }];
csvWriter.writeRecords(records) .then(() => console.log('CSV फ़ाइल बनाई गई'));उन्नत उपयोग परिदृश्य
डेटा परिवर्तन के साथ बड़ी फ़ाइलों का प्रसंस्करण
चलते-फिरते डेटा को संसाधित करने के लिए एक ही स्ट्रीम में पढ़ने और लिखने को संयोजित करें:
const fs = require('fs');const csv = require('csv-parser');const { stringify } = require('csv-stringify');
const readStream = fs.createReadStream('input.csv');const writeStream = fs.createWriteStream('output_transformed.csv');const stringifier = stringify({ h