Node.js में CSV के साथ कार्य: csv-parser और csv-writer लाइब्रेरीज़
\n\nCSV (Comma-Separated Values) सारणीबद्ध डेटा को संग्रहीत और आदान-प्रदान करने के लिए सबसे लोकप्रिय प्रारूपों में से एक है। Node.js पारिस्थितिकी तंत्र में इस प्रारूप के साथ काम करने के लिए कई उपकरण मौजूद हैं। इस लेख में, हम दो सबसे सुविधाजनक और हल्की लाइब्रेरीज़ पर विचार करेंगे: पढ़ने के लिए csv-parser और CSV फ़ाइलें लिखने के लिए csv-writer।
\n\nलाइब्रेरीज़ की स्थापना
\n\nआरंभ करने के लिए, npm के माध्यम से दोनों लाइब्रेरीज़ स्थापित करें:
\n\nnpm install csv-parser csv-writer\n\ncsv-parser के साथ CSV फ़ाइलें पढ़ना
\n\ncsv-parser लाइब्रेरी CSV डेटा को JavaScript ऑब्जेक्ट्स की एक स्ट्रीम में बदल देती है। यह Node.js Streams पर आधारित है, जो बहुत बड़ी फ़ाइलों को भी मेमोरी में पूरी तरह लोड किए बिना कुशलतापूर्वक संसाधित करने की अनुमति देता है।
\n\nपढ़ने का मूल उदाहरण
\n\nनिम्नलिखित सामग्री के साथ एक users.csv फ़ाइल बनाएँ:
name,age,city\nअन्ना,28,मॉस्को\nइवान,35,सेंट पीटर्सबर्ग\nमारिया,22,कज़ान\n\nअब इसे csv-parser का उपयोग करके पढ़ें:
\n\nconst fs = require('fs');\nconst csv = require('csv-parser');\n\nconst results = [];\n\nfs.createReadStream('users.csv')\n .pipe(csv())\n .on('data', (data) => results.push(data))\n .on('end', () => {\n console.log('पढ़े गए रिकॉर्ड:', results.length);\n console.log('पहला रिकॉर्ड:', results[0]);\n // आउटपुट: { name: 'अन्ना', age: '28', city: 'मॉस्को' }\n });\n\nविभाजक और हेडर का कॉन्फ़िगरेशन
\n\ncsv-parser विभिन्न सेटिंग्स का समर्थन करता है। उदाहरण के लिए, यदि आपका CSV विभाजक के रूप में अर्धविराम का उपयोग करता है:
\n\nfs.createReadStream('users.csv')\n .pipe(csv({ separator: ';' }))\n .on('data', (row) => console.log(row));\n\nयदि फ़ाइल में हेडर नहीं हैं, तो उन्हें मैन्युअल रूप से निर्दिष्ट किया जा सकता है:
\n\nfs.createReadStream('data.csv')\n .pipe(csv({ headers: ['id', 'product', 'price'] }))\n .on('data', (row) => console.log(row));\n\ncsv-writer के साथ CSV फ़ाइलें लिखना
\n\ncsv-writer लाइब्रेरी ऑब्जेक्ट्स की सरणियों से CSV फ़ाइलें बनाने की अनुमति देती है। यह विभिन्न एन्कोडिंग और विभाजकों का समर्थन करती है।
\n\nएक सरल CSV फ़ाइल बनाना
\n\nconst createCsvWriter = require('csv-writer').createObjectCsvWriter;\n\nconst csvWriter = createCsvWriter({\n path: 'output.csv',\n header: [\n { id: 'name', title: 'नाम' },\n { id: 'age', title: 'आयु' },\n { id: 'city', title: 'शहर' }\n ]\n});\n\nconst records = [\n { name: 'अन्ना', age: 28, city: 'मॉस्को' },\n { name: 'इवान', age: 35, city: 'सेंट पीटर्सबर्ग' },\n { name: 'मारिया', age: 22, city: 'कज़ान' }\n];\n\ncsvWriter.writeRecords(records)\n .then(() => console.log('CSV फ़ाइल सफलतापूर्वक बनाई गई'));\n\ncsv-writer की अतिरिक्त सेटिंग्स
\n\nआप फ़ील्ड विभाजक बदल सकते हैं, Excel में सिरिलिक के सही प्रदर्शन के लिए BOM जोड़ सकते हैं और एन्कोडिंग निर्दिष्ट कर सकते हैं:
\n\nconst createCsvWriter = require('csv-writer').createObjectCsvWriter;\n\nconst csvWriter = createCsvWriter({\n path: 'output_utf8.csv',\n header: [\n { id: 'name', title: 'नाम' },\n { id: 'age', title: 'आयु' }\n ],\n fieldDelimiter: ';',\n alwaysQuote: true,\n encoding: 'utf8'\n});\n\nव्यावहारिक उदाहरण: JSON को CSV में बदलना
\n\nअक्सर JSON डेटा को CSV प्रारूप में बदलने का कार्य होता है। यहाँ एक पूर्ण उदाहरण है:
\n\nconst fs = require('fs');\nconst createCsvWriter = require('csv-writer').createObjectCsvWriter;\n\n// मूल डेटा\nconst jsonData = [\n { id: 1, product: 'लैपटॉप', price: 75000, quantity: 10 },\n { id: 2, product: 'माउस', price: 1500, quantity: 50 },\n { id: 3, product: 'कीबोर्ड', price: 3500, quantity: 30 }\n];\n\n// CSV लेखक का कॉन्फ़िगरेशन\nconst csvWriter = createCsvWriter({\n path: 'products.csv',\n header: [\n { id: 'id', title: 'आईडी' },\n { id: 'product पुस्तकालय में भी
ClosedXML C# (.NET) पूर्ण गाइड: उदाहरणों के साथ
PHP के लिए कार्य कतारें: RabbitMQ, Beanstalkd और Gearman
Go (Golang) में रेट लिमिटिंग: लाइब्रेरीज़, पैटर्न और कार्यान्वयन उदाहरण
Kotlin में QR कोड जनरेटर: ZXing लाइब्रेरी और कार्यान्वयन टिप्स