如何在nodejs json2csv中存在csv文件追加新行?

我想在现有的csv文件中添加新的行? 如果csv文件存在,那么我不想添加列标题,只是想在文件中存在行后添加新行。

这是我正在尝试的代码:

var fields = ['total', 'results[0].name.val']; var fieldNames = ['Total', 'Name']; var opts1 = { data: data, fields: fields, fieldNames: fieldNames, newLine: '\r\n' }; var opts2 = { newLine: '\r\n', data: data, fields: fields, fieldNames: fieldNames, hasCSVColumnTitle: false, }; fs.stat('file.csv', function (err, stat) { if (err == null) { console.log('File exists'); var csv = json2csv(opts2); fs.appendFile('file.csv', csv, function (err) { if (err) throw err; console.log('The "data to append" was appended to file!'); }); } else if (err.code == 'ENOENT') { // file does not exist var csv = json2csv(opts1); fs.writeFile('file.csv', csv, function (err) { if (err) throw err; console.log('file saved'); }); } else { console.log('Some other error: ', err.code); } }); 

下面的代码将做你所问:

  1. 当第一次运行时,将会写入标题
  2. 之后的每个运行 – 将json数据附加到csv文件

     var fs = require('fs'); var json2csv = require('json2csv'); var newLine= "\r\n"; var fields = ['Total', 'Name']; var appendThis = [ { 'Total': '100', 'Name': 'myName1' }, { 'Total': '200', 'Name': 'myName2' } ]; var toCsv = { data: appendThis, fields: fields, hasCSVColumnTitle: false }; fs.stat('file.csv', function (err, stat) { if (err == null) { console.log('File exists'); //write the actual data and end with newline var csv = json2csv(toCsv) + newLine; fs.appendFile('file.csv', csv, function (err) { if (err) throw err; console.log('The "data to append" was appended to file!'); }); } else { //write the headers and newline console.log('New file, just writing headers'); fields= (fields + newLine); fs.writeFile('file.csv', fields, function (err, stat) { if (err) throw err; console.log('file saved'); }); } });