2012-04-19 32 views
15

Estoy luchando por encontrar una forma de escribir datos en un CSV en Node.js.Escribir en un archivo CSV en Node.js

Hay varios complementos CSV disponibles, pero solo 'escriben' en stdout. Idealmente quiero escribir en una base fila por fila usando un bucle.

Gracias de antemano.

+2

* "Sin embargo, solo 'escriben' en stdout" * Eso parece ** realmente ** sorprendente. No escribirán en ningún 'Stream' escribible, ** tiene ** para ser' stdout' ?! –

+0

¿Podría incluir enlaces a los módulos que ha probado, para que otros puedan revisarlos y/o saber qué alternativas sugerir? –

+0

hay un tutorial sobre generar CSV usando nodejs. http://programmerblog.net/generate-csv-using-nodejs/ –

Respuesta

16

la documentación para node-csv-parser (npm install csv) indican específicamente que se puede utilizar con corrientes (ver fromStream, toStream). Por lo tanto, no está codificado para usar stdout.

Varios otros analizadores de CSV también aparecen cuando npm search csv - es posible que desee verlos también.

0

Aquí está un ejemplo sencillo usando csv-stringify escribir un conjunto de datos que cabe en memoria a un archivo CSV con 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.'); 
    }); 
});