node.js - 在没有库的情况下使用 nodeJS 解析 CSV 字符串
问题描述
我想在 firebase 中创建一个云函数来解析 csv 文件并将它们添加为 firestore 文档。不知何故,我尝试的所有库似乎都不起作用。每当我添加一个 csv 库时,该函数甚至都不会部署。因此,我想在不使用库的情况下解析 CSV 文件。但是,我似乎无法弄清楚在使用地图和数组时如何正确解析它。我有以下字符串类型的字符串。用占位符替换了一些数据。
subject,contacts,dateStart,dateEnd,timeStart,timeEnd,isRecurring,frequence,location,room,visitors,sendInvite
Sollicitatie,[{"name":"<name here>","email":"<email here>","phoneNumber":"<phone number here>"}],28-09-2020,28-09-2020,13:00,14:00,true,yearly,<location here>,2,[{"name":"<name here>","email":"<email here>","visitorImage":"imgRef","visitorType":"Relation","phoneNumber":"<telephone here>","licencePlate":"<licencePlate>"}],true
我想在 Firestore 中获取这些数据,如下所示:
subject: subject,
contacts:[
{
name: name,
email: email,
phoneNumber: phoneNumber
},
{
name: name,
email: email,
phoneNumber
}
],
dateStart: dateStart,
dateEnd, dateEnd,
timeStart, timeEnd,
isRecurring, isRecurring,
frequence, frequence,
location: location,
room: room,
visitors:[
{
name: name,
email: email,
phoneNumber: phoneNumber
},
{
name: name,
email: email,
phoneNumber
//Whatever data also needs to be added
}
]
是否有一个可以工作的库/我的 package.json 有问题,还是有一个可以工作的脚本?我试图编写一个脚本来执行此操作,但它远未奏效。我尝试了以下方法并获得了正确的字符串,但我无法以正确的方式获得数组。
const convert = (from, to) => str => Buffer.from(str, from).toString(to);
const hexToUtf8 = convert('hex', 'utf8');
const string = hexToUtf8(contents);
const data = string.split('\n');
for(i=0;i<=data.length - 1;i++){
if(i == 0){
continue;
}
const row = data[i];
const rowValues = [];
const elems = row.split(",");
console.log(elems);
var arrayParse;
var parsing = 0;
for(j=0;j<=elems.length - 1;j++){
const elem = elems[j];
if(parsing == 1){
arrayParse += "," + elem;
continue;
}else if(elem[0] == "["){
arrayParse += elem;
parsing = 1;
continue;
}else if(elem[elem.length - 1] == "]"){
arrayParse += elem;
parsing = 0;
rowValues.push(arrayParse);
arrayParse = "";
continue;
}else{
rowValues.push(elem);
}
}
console.log(rowValues);