如何使用node.js将csv文件导入mysql?

Ced*_*Ced 8 mysql csv import contacts node.js

现在我正在尝试使用库fast-csv这样做:

var stream = fs.createReadStream("./google.csv");
  csv
   .fromStream(stream, {headers : ["Name","E-mail 1 - Value"], ignoreEmpty: true})
   .on("data", function(data){
       console.log(data);
   })
   .on("end", function(){
       console.log("done");
   });
Run Code Online (Sandbox Code Playgroud)

但它抛出了这个错误:"列标题不匹配:2列得到:57"

你知道我怎么能避免这种情况?我应该使用不同的库/方法

我面临的另一个问题是我得到十六进制的结果......我怎样才能正确解析它?

Asi*_*tta 7

您可以使用节点模块'csv-parse'.

  1. 使用节点'fs'模块读取csv文件
  2. 将数据传递给csv解析器,你将获得数组的arry,其中内部数组代表每一行.

看看下面的代码.

var csvParser = require('csv-parse');

fs.readFile(filePath, {
  encoding: 'utf-8'
}, function(err, csvData) {
  if (err) {
    console.log(err);
  }

  csvParser(csvData, {
    delimiter: ','
  }, function(err, data) {
    if (err) {
      console.log(err);
    } else {
      console.log(data);
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

这里filePath是csv文件的路径,分隔符将根据您的文件.它是分隔csv文件中字段的字符(可以是',','.'等).