Mysql экспортирует CSV, затем анализирует в nodejs с помощью csv-parse не находит разделитель должным образом

#mysql #node.js #csv #export-to-csv #node-csv-parse

#mysql #node.js #csv #экспорт в csv #узел-csv-parse

Вопрос:

Я экспортирую поле описания из базы данных mysql:

 SELECT REPLACE(description, char(13), '\n') 
FROM table u  INTO OUTFILE '/var/lib/mysql-files/u.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY 'n';
 

Затем в nodejs я обрабатываю файл с помощью csv-parse (должен использовать этот, поскольку он обрабатывает асинхронность):

 const parse       = promisify(require('csv-parse'));
const records = await parse(fileContents, { delimiter: ',', columns: true, skip_empty_lines: true, record_delimiter: "n" });
 

Вот пример текста:

 Married, mad scientist and tennisman from Germany. I might not be able
to spell the word "ubuntu" without spellcheck software, but be sure I
know the meaning.
 

Однако анализатор ошибается, разделите его на 3 поля:

 '"Married, mad scientist and tennisman from Germany. I might not be
able to spell the word \"ubuntu\" without spellcheck software', 
'but be sure I know the meaning."',  
'\N'
 

3-е поле поступает из mysql, по какой-то причине файл сохраняется с этим N в конце вместо n .
Я могу удалить его с помощью sed, а также запятой в конце строки, хотя некоторые советы всегда приветствуются, если мой запрос может избежать этого.

Однако для разделения основного текста на 2 поля я озадачен. Я попытался удалить параметр разделителя в parse, но та же проблема. Я попробовал расслабиться: правда, то же самое.

Есть идеи, что я делаю не так?

Комментарии:

1. Почему экспорт в CSV, вы не можете подключиться к БД напрямую с узла?

2. Я экспортирую очень большие таблицы в csv, чтобы я мог загружать в firestore (nosql), и это лучший способ, который я нашел.