CSV stringifier implementing the Node.js
This project is part of the CSV module
and a stringifier converting records into a CSV text and implementing the
stream.Transform API. It is also providing a simple callback-base API
for converniency. It is both extremely easy to use and powerfull. It was
released since 2010 and is tested against very large dataset by a large
This module is to be considered in alpha stage. It is part of an ongoing effort to split the current CSV module into complementary modules with a cleaner design and the latest stream implementation. However, the code has been imported with very little changes and you should feel confident to use it in your code.
npm install csv to install the full csv module or run
npm install csv-stringify if you are only interested by the CSV stringifier.
Use the callback style API for simplicity or the stream based API for scalability.
The stringifier receive an array and return a string inside a user-provided
callback. This example is available with the command
var stringify = require'csv-stringify';input = '1' '2' '3' '4' 'a' 'b' 'c' 'd' ;stringifyinputoutputshouldeql'1,2,3,4\na,b,c,d';;
// node samples/stream.jsvar stringify = require'csv-stringify';data = '';stringifier = stringifydelimiter: ':'stringifieron'readable'whilerow = stringifierreaddata += row;;stringifieron'error'consol.logerrmessage;;stringifieron'finish'datashouldeql"root:x:0:0:root:/root:/bin/bash\n" +"someone:x:1022:1022:a funny cat:/home/someone:/bin/bash";;stringifierwrite 'root''x''0''0''root''/root''/bin/bash' ;stringifierwrite 'someone''x''1022''1022''a funny cat''/home/someone''/bin/bash' ;stringifierend;
One usefull function part of the Stream API is
pipe to interact between
multiple streams. You may use this function to pipe a
or object source to a
stream.Writable string destination. The next example
node samples/pipe.js generate records, stringify them and print
them to stdout.
stringify = require'csv-stringify';generate = require'csv-generate';generator = generateobjectMode: true seed: 1 headers: 2;stringifier = stringify;generatorpipestringifierpipeprocessstdout;
Most of the generator is imported from its parent project CSV in a effort to split it between the generator, the parser, the transformer and the stringifier.
Tests are executed with mocha. To install it, simple run
npm test. It will install mocha and its dependencies in your
project "node_modules" directory and run the test suite. The tests run
against the CoffeeScript source files.
The test suite is run online with Travis against the versions 0.9, 0.10 and 0.11 of Node.js.
- David Worms: https://github.com/wdavidw