Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用node.js将csv文件导入mysql?_Mysql_Node.js_Csv_Import_Contacts - Fatal编程技术网

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

如何使用node.js将csv文件导入mysql?,mysql,node.js,csv,import,contacts,Mysql,Node.js,Csv,Import,Contacts,现在我正在尝试使用库快速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(){

现在我正在尝试使用库快速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");
   });
但它抛出了这个错误:“预计列标题不匹配:2列得到:57”

你知道我怎样才能避免吗?我应该使用不同的库/方法吗


我面临的另一个问题是,我得到的结果是十六进制的。。。如何正确解析它?

您可以使用节点模块“csv解析”

  • 使用节点“fs”模块读取csv文件
  • 将数据传递给csv解析器,您将得到数组数组,其中内部数组表示每一行 看看下面的代码

    var csvParser=require('csv-parse');
    fs.readFile(文件路径{
    编码:“utf-8”
    },函数(err,csvData){
    如果(错误){
    控制台日志(err);
    }
    csvParser(csvData{
    分隔符:','
    },函数(错误,数据){
    如果(错误){
    控制台日志(err);
    }否则{
    控制台日志(数据);
    }
    });
    });
    

    此处filePath是csv文件的路径,分隔符将与您的文件一致。它是分隔csv文件中字段的字符(可以是“,”,“.”等)

    从第二个参数中删除
    headers
    属性。该CSV显然有57列,而您只提供了其中两列的标题。Hi-Techxxx,这种方法效果更好,但现在我面临这个问题:所有内容都是十六进制的,您将如何处理?@Cedric抱歉,但我不理解您的问题。如果你解释一下,我可以试着帮你。