我正在使用节点模块 csv-parser 进行流式 csv 解析。上传 CSV(逗号分隔值)时工作正常,但是当我们上传 CSV(Macintosh)文件时,会出现换行符问题。在 Windows 上生成的 CSV 包含这样的换行符 \r\n 但对于 CSV (MAC),它仅包含 \r,因为它是 Mac 格式。需要进行哪些配置才能使其适用于两种文件类型?
这是完成流挂钩的代码片段。
// Create a read stream for the passed file path and abort if the file is not found
let readStream: fs.ReadStream;
try {
readStream = fs.createReadStream(filePath);
} catch (error) {
console.log('Skipped order batch file processing. File not found.');
resolve();
return;
}
// Create the CSV transform
let csvStream: Transform;
if (file.mapping) {
csvStream = csv({ headers: false });
} else {
csvStream = csv();
}
readStream
.pipe(csvStream);
CSV-PARSER 有一个换行参数选项,它的默认值是“\n”,使用“\r”。
csvStream = csv({ headers: false, newline:"\r" });
如何使换行值有条件地设置,例如,如果它是 csv(Mac)它应该为 CSV(Windows)“\r\n”和 linux“\n”“\r”?
注意:我需要在文件读取中检测到这一点。
您的帮助将不胜感激!谢谢!