wake-up-neo.net

So lesen Sie die CSV-Datei im Knoten js

Ich versuche, eine CSV-Datei mit Knoten js ..__ zu lesen. Ihr Code ist dabei 

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

KONSOLE:

ID
D11
D33
D55

Hier möchte ich die Elemente in der Spalten-ID abrufen und diese in einem Array speichern. Wie kann ich das machen? Kann mir jemand vorschlagen, mir zu helfen. Danke . Mein Controller:

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){
7
MMR

Verwenden Sie eine Bibliothek, CSV hat viele Fallstricke. Ich bin gekommen, um das Paket csv zu genießen. Es befindet sich hier: https://www.npmjs.com/package/csv . Hier ist ein sehr schnelles Beispiel mit der asynchronen API.

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.
  })
})

Da Ihre Datei nicht mehrere Werte pro Zeile enthält und außer Zeilenumbrüche keine Trennzeichen enthält, handelt es sich nur um triviale CSV-Werte. Vielleicht ist String.prototype.split() für Sie?

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', ... ]
})
14
trognanders

Von Wie liest man Daten aus der * .CSV-Datei mit Javascript? , verwenden Sie die jQuery-CSV-Bibliothek. 

Hinweis: Die Bibliothek ist für die Verarbeitung von CSV-Daten ausgelegt, die RFC 4180-konform sind, einschließlich aller unangenehmen Edge-Fälle, die die meisten "einfachen" Lösungen nicht berücksichtigen.

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
    }
  });
});

code-Snippet aus den jquery-csv Beispielen hier .

0
zelusp

Ich habe einen Stream verwendet, fs und csv-parse wie in diese Antwort :

const parse = require('csv-parse')
const fs = require('fs') 

const data = []
fs.createReadStream(filename)
  .pipe(parse({ delimiter: ',' }))
  .on('data', (r) => {
    console.log(r);
    data.Push(r);        
  })
  .on('end', () => {
    console.log(data);
  })
0
ehacinom