Я уже некоторое время использую fast-csv в качестве библиотеки конвертера.Проблема возникла, когда клиент фактически пытался загрузить файлы CSV, которые на самом деле содержали ';'в качестве разделителя вместо значения по умолчанию ','.В документации NPM явно сказано, что все методы должны принимать «опцию» (не понимаю, почему не объект) для фактического переключения этих флагов.Конечно, я всегда могу зайти в исходный файл js и вручную изменить разделитель, но мне бы очень хотелось понять эту документацию, поскольку она является частью моего роста как разработчика, но все же я не могу понять, какна самом деле использовать эти параметры (разделитель) при анализе его в моем коде.Если никто из вас, ребята, не может понять это, может быть, у вас есть какие-то рекомендации относительно парсеров CSV на JavaScript?Может быть, ручной сценарий был бы более универсальным и полезным?
Пример документации от (fast-csv на npm):
All methods accept the following options
objectMode=true: Ensure that data events have an object emitted rather than the stringified version set to false to have a stringified buffer.
headers=false: Set to true if you expect the first line of your CSV to contain headers, alternatly you can specify an array of headers to use. You can also specify a sparse array to omit some of the columns.
ignoreEmpty=false: If you wish to ignore empty rows.
discardUnmappedColumns=false: If you want to discard columns that do not map to a header.
strictColumnHandling=false: If you want to consider empty lines/lines with too few fields as errors - Only to be used with headers=true
renameHeaders=false: If you want the first line of the file to be removed and replaced by the one provided in the headers option - Only to be used with headers=[String]
delimiter=',': If your data uses an alternate delimiter such as ; or \t.
Кроме того, вот пример кода, как он работает, итакже, как я использую это (с конвейером):
var stream = fs.createReadStream("my.csv");
var csvStream = csv()
.on("data", function(data){
console.log(data);
})
.on("end", function(){
console.log("done");
});
stream.pipe(csvStream);
//or
var csvStream = csv
.parse()
.on("data", function(data){
console.log(data);
})
.on("end", function(){
console.log("done");
});
stream.pipe(csvStream);
PS: я пробовал это спрашивать в другом месте (где опубликован пакет), но не получил ответов.