2017-01-21 6 views
6

मैं नोड js का उपयोग कर एक csv फ़ाइल को पढ़ने के लिए कोशिश कर रहा हूँ।में csv फ़ाइल को पढ़ने के लिए कैसे नोड js

ID 
D11 
D33 
D55 

यहाँ मैं में स्तंभ आईडी तत्वों मिलता है और एक सरणी में उन संग्रहीत करना चाहते हैं: उसे मेरी कोड

fs.readFile(config.csvUploadPath, function read(err, data) { 
    if (err) { 
     throw err; 
    } 
    console.log(data + 'my data') 
}); 

कंसोल है। मैं उसे कैसे कर सकता हूँ? क्या कोई मुझे मदद का सुझाव दे सकता है। धन्यवाद। मेरे नियंत्रक:

var partnersModel = new partners(params); 
     fs.readFile(config.csvUploadPath, function read(err, data) { 
      if (err) { 
       throw err; 
      } 
     dataArray = data.toString().split(/\r?\n/); 
      dataArray.forEach(function(v,i){ 
       if(v !== 'DUI'){ 
        partnersModel.dui.push(v); 
       } 
      }); 
     }); 
     partnersModel.save(function(error, response){ 
+1

http://stackoverflow.com/questions/23080413/nodejs-reading-csv-file –

+0

[एनडीजेजेएस सीएसवी फ़ाइल पढ़ने] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/23080413/nodejs-reading-csv -फाइल) – crowchirp

+0

क्या यह वास्तव में एक सीएसवी फ़ाइल है, या सिर्फ एक फ़ाइल जिसमें आईडी की सूची है? लाइब्रेरी के बिना पार्स करना बहुत आसान होगा, लेकिन यदि आप सही सीएसवी पार्स कर रहे हैं तो निश्चित रूप से एक का उपयोग करें! पसंद के मेरे मॉड्यूल है: https://www.npmjs.com/package/csv –

उत्तर

9

एक लाइब्रेरी का, सीएसवी gotchas के बहुत सारे है। मैं पैकेज csv का आनंद लेने आया हूं। यह यहां स्थित है: https://www.npmjs.com/package/csv। एसिंक एपीआई का उपयोग करके यहां एक बहुत तेज़ उदाहरण दिया गया है।

const fs = require('fs') 
var parse = require('csv-parse') 
fs.readFile(inputPath, function (err, fileData) { 
    parse(fileData, {columns: false, trim: true}, function(err, rows) { 
    // Your CSV data is in an array of arrys passed to this callback as rows. 
    }) 
}) 

के बाद से अपनी फ़ाइल प्रति पंक्ति एक से अधिक मान नहीं है और न्यू लाइन के अलावा कोई सीमांकक होता है, यह केवल तुच्छता से सीएसवी है। शायद String.prototype.split() आपके लिए है?

const fs = require('fs') 
fs.readFile(inputPath, 'utf8', function (err, data) { 
    var dataArray = data.split(/\r?\n/); //Be careful if you are in a \r\n world... 
    // Your array contains ['ID', 'D11', ... ] 
}) 
+0

धन्यवाद, आपके कोड से मुझे क्या बाहर निकाला जाएगा? – MMR

+0

पंक्तियां = ['11', '33, '34'] ....? – MMR

+0

सीएसवी फाइलों में आम तौर पर प्रति पंक्ति एकाधिक मान होते हैं, इसलिए यह प्रत्येक पंक्ति के लिए एक सरणी की सरणी देता है ... आपके उदाहरण के लिए 'पंक्तियां = [[' आईडी '], [' डी 11 '], [' डी 33 '], [' डी 55 ']] '। ध्यान दें कि हेडर को भी पार्स किया गया था, और यह मानों में से एक को इंडेक्स करने के लिए आपको 'पंक्तियों [1] [0] 'जैसे कुछ उपयोग करने की आवश्यकता होगी। –

0

How to read data From *.CSV file using javascript? से, jQuery-CSV लाइब्रेरी का उपयोग करें।

नोट: पुस्तकालय किसी भी सीएसवी डेटा आरएफसी 4180 बुरा बढ़त मामलों के सभी सबसे 'सरल' समाधान की अनदेखी है कि सहित, अनुपालन करता है संभाल करने के लिए बनाया गया है। jquery-csv के उदाहरण here से

var fs = require('fs'); 
var $ = jQuery = require('jquery'); 
$.csv = require('jquery-csv'); 

var sample = './path/to/data/sample.csv'; 
fs.readFile(sample, 'UTF-8', function(err, csv) { 
    $.csv.toArrays(csv, {}, function(err, data) { 
    for(var i=0, len=data.length; i<len; i++) { 
     console.log(data[i]); //Will print every csv line as a newline 
    } 
    }); 
}); 

कोड स्निपेट।

संबंधित मुद्दे