2012-04-19 2 views
15

Я изо всех сил пытаюсь найти способ записывать данные в CSV в Node.js.Запись в CSV в Node.js

Существует несколько плагинов CSV, но они только «пишут» в стандартный вывод. В идеале я хочу написать строку с использованием цикла.

Заранее спасибо.

+2

* «однако они только« пишут »в stdout» * Это кажется ** действительно удивительным. Они не будут писать на любой «Stream» для записи, он ** имеет ** '' stdout' ?! –

+0

Не могли бы вы включить ссылки на модули, которые вы тестировали, чтобы другие могли их просмотреть и/или знать, какие альтернативы предлагают? –

+0

есть учебник по генерации CSV с использованием nodejs. http://programmerblog.net/generate-csv-using-nodejs/ –

ответ

16

Документах для node-csv-parser (npm install csv) конкретно указывается, что она может быть использована с потоками (см fromStream, toStream). Таким образом, нет жесткого кодирования для использования stdout.

Несколько других синтаксических анализаторов CSV также появляются, когда вы npm search csv - вы также можете посмотреть на них.

0

Вот простой пример использования csv-stringify, чтобы написать набор данных, который помещается в памяти в файл CSV с помощью fs.writeFile.

import stringify from 'csv-stringify'; 
import fs from 'fs'; 

let data = []; 
let columns = { 
    id: 'id', 
    name: 'Name' 
}; 

for (var i = 0; i < 10; i++) { 
    data.push([i, 'Name ' + i]); 
} 

stringify(data, { header: true, columns: columns }, (err, output) => { 
    if (err) throw err; 
    fs.writeFile('my.csv', output, (err) => { 
    if (err) throw err; 
    console.log('my.csv saved.'); 
    }); 
});