Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
Javascript csv parse解析的对象的第一个属性不可解析_Javascript_Node.js_Csv Parse - Fatal编程技术网

Javascript csv parse解析的对象的第一个属性不可解析

Javascript csv parse解析的对象的第一个属性不可解析,javascript,node.js,csv-parse,Javascript,Node.js,Csv Parse,我正在使用解析包含以下内容的csv文件- 但是,在返回的对象上,无法访问从第一列userID创建的属性 这是我的密码-- 异步函数main(){ 让systemIDs=wait-getSystemIds('./systems.csv'); log(`Scanning data for${systemIDs.length}systems..`); console.log(systemid[0]); console.log(systemIDs[0].userID);//这将打印未定义的 conso

我正在使用解析包含以下内容的csv文件-

但是,在返回的对象上,无法访问从第一列
userID
创建的属性

这是我的密码--


异步函数main(){
让systemIDs=wait-getSystemIds('./systems.csv');
log(`Scanning data for${systemIDs.length}systems..`);
console.log(systemid[0]);
console.log(systemIDs[0].userID);//这将打印未定义的
console.log(systemIDs[0].sysID);//这将打印正确的值
}
异步函数getSystemId(路径){
设ids=[];
等待新的承诺((决定,拒绝)=>{
const csvParser=csvParse({columns:true,skip_empty_line:true});
FS.createReadStream(路径)
.管道(csvParser)
.on('可读',()=>{
记录;
while(record=csvParser.read()){
id.push(记录);
}            
})
.on('finish',()=>{
解决();
});
});
返回ID;
}
输出-

扫描两个系统的数据。。
{'userID':'20',sysID:'50'}

未定义的//最终我自己解决了

我需要BOM选项。UTF-8文件应设置为true的状态。但它默认为false

默认情况下,Excel生成csv文件,其中BOM表作为csv文件中的第一个字符。解析器将其作为头(和键名)的一部分提取。 当bom选项设置为true时,它可以处理从excel或其他程序生成的csv文件

const csvParser=csvParse({
专栏:对,
跳过空行:真,
bom:对
});

csv文件中可能有空格吗?另外,您可以在以下内容之后控制台.log(record):while(record=csvParser.read()){@Skarlinski它看起来是一样的
{'userID':'20',sysID:'50'}
听起来像是原始csvI中一些奇怪的unicode或隐藏空格问题会测试其他csv,或者在运行inspect时添加断点。
userID,sysID
20,50
30,71