Node CSV, le parseur JavaScript de fichiers CSV
Node CSV, le parseur JavaScript de fichiers CSV
Le projet Node CSV fournit un parseur de fichiers CSV. En implémentant des mécanismes de lecture/écriture de flux, ce module peut analyser des fichiers CSV avec moins de mémoire par rapport à la lecture de l'intégralité du fichier en mémoire. Il a été testé et utilisé sur un gros fichier (plus de 2 Go).
En voici quelques caractéristiques :
- respecte l'API streaming de NodeJS ;
- s'appuie sur l'asynchronisme et les événements ;
- prend en charge les délimiteurs, les quotes et les caractères d'échappement ;
- détecte les sauts de ligne ;
- supporte de grands ensembles de données ;
- aucune dépendance externe.
Vous pouvez l'utiliser de la manière suivante :
Code:
1 2 3
| fs.createReadStream('./in')
.pipe(csv())
.pipe(fs.createWriteStream('./out')); |
Ou bien ainsi :
Code:
1 2 3
| csv()
.from.path('./in')
.to.string(function(data) { console.log(data); }); |
Vous pouvez également ajouter des options de cette manière :
Code:
from.options({ option: 'value' })
L'outil en est maintenant à sa version 0.2.
:fleche: Le code source sur GitHub.
:fleche: Le site officiel.
:fleche: D'après un article sur DailyJS. Cet article parle également de Memoize.
:fleche: Les meilleurs cours et tutoriels pour apprendre Node.js
Explications du module csv de Node.js
Bonjour,
Je souhaite transformer des fichier csv en graphiques et les afficher grâce a ajax sur mon site web. Pour cela j'ai vu qu'il y a une bibliothèque javascript Highcharts mais comme j'utilise un serveur Node.js, j'aimerai utiliser le module csv. J'ai vu qu'il était découpé en 4 petits modules:
csv-generate
csv-parse
stream-transform
csv-stringify
mais je ne comprend pas très bien comment cela fonctionne. D'après ce que j'ai compris, cvs-generate permet de créer un fichier csv, csv-parse permet de transformer un fichier text en csv, csv-stringify fait le contraire et le stream-transform? Dans mon cas étant donné que j'ai déjà mes fichiers csv, il me semble que je n'en ai pas besoin. Pourriez-vous m'éclairer?
Merci d'avance.