如何在节点js

时间:2017-01-21 07:49:21

标签: node.js csv express meanjs fs

我正在尝试使用节点js读取csv文件。 她是我的代码

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

CONSOLE:

ID
D11
D33
D55

这里我想获取列ID中的元素并将它们存储在数组中。我怎样才能做到这一点?谁能建议我帮忙。谢谢。 我的控制器:

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

3 个答案:

答案 0 :(得分:15)

使用库,CSV有很多陷阱。我来享受这个包csv。它位于:https://www.npmjs.com/package/csv。这是一个使用async 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.
  })
})

由于您的文件每行没有多个值,并且除了换行符之外不包含分隔符,因此它只是简单的CSV。也许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', ... ]
})

答案 1 :(得分:0)

How to read data From *.CSV file using javascript?开始,使用jQuery-CSV库。

  

注意:该库旨在处理任何符合RFC 4180标准的CSV数据,包括所有最简单且最简单的边缘情况。解决方案忽视。

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
    }
  });
});
来自jquery-csv的示例here

代码段。

答案 2 :(得分:0)

我在this answer中使用了流python Python 3.7.4 (default, Aug 13 2019, 15:17:50) [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import torchaudio >>> torchaudio.initialize_sox() 0` fs

csv-parse