I am currently working on a business project that exports the processed data to CSV file. I wanted to process that into the dashboard. I can choose python or any other backend language to read the CSV file. However, I have found out that node js may be much better option. I already have the node on the front end side. So I thought If I can process this using node. And make it available in the dashboard so that I don't have to waste much time with other language.
Here's simple code that got me started. You can also check out Read CSV with Node JS video for alternative explanation.
Check out the example code below that got me started. There's a lot more to be done to extend the below code. Like say if I wish to take the data from the mysql and export it to CSV then I have to change read to write operation.
const fs = require('fs');
const csv = require('csv-parser');
fs.createReadStream(inputFilePath)
.pipe(csv())
.on('data', function(data){
try {
//perform the operation
}
catch(err) {
//error handler
}
})
.on('end',function(){
//some final operation
});
Here's the CSV module that I have used. I think there are plenty of npm modules that you can check out. But the CSV parser seems to be simple and gets the job done.
What's your favorite node module for the CSV parsing?
Top comments (11)
I just use fs.
When I use the contents of the file, it's like
which is good enough for my purposes.
typo: fileContent = fs.readFileSync(path, {encoding: 'utf8'});
Fixed it now, thanks :)
Hi Kayla, this is awesome! Do you mind if I link to this code snippet in a CSV-parsing dev.to article I'm working on? I'd love to include a purely fs solution. :)
Go for it! :)
Thank you!! Here's the link to the article, with the link to your snippet in the conclusion. :)
dev.to/isalevine/parsing-csv-files...
Question, please:
Why does this only return the first character of the string?
Text for the first 10 rows is:
"1-800-FLOWERS.COM, INC.",
"1ST SOURCE",
"1ST SOURCE CORP",
"3D SYSTEMS",
"8X8, INC.",
"A.H. BELO",
"AAON",
"AARON RENTS",
"ABERCROMBIE & FITCH",
"ABIOMED",
I generally prefer to use something like csvtojson and get it into a format that is easier to parse.
Thanks! It saved me.
I wrote an article a while ago possibly related: fabiofranchino.com/blog/merging-cs...
This is handy for sure. Thanks a lot.