I’m working on a project built entirely in node.js and coffeescript. I want to allow the user to export a CSV of several different collections in my Mongo DB by clicking a button on my website.
I believe the best way to do this would be to make an ajax call to my node.js backend and have that call return somefile.csv to the user. I’m at a loss at how to do this though, and there are so many conflicting resources. Here’s the stub of how I think things should work:
exports.exportToCSV = (req, res) ->
console.log 'Inside exportToCSV'
# Create a dynamic csv file
# How to?
# Set the response headers
# How to?
# Attach the newly created CSV
# How to?
# Write the response
res.write('somefile.csv')
res.end()
Any help would be greatly appreciated. Thank you.
If you’re using Express (and I’d say you need a pretty big excuse not to), everything after creating the CSV is a piece of cake:
As the Express docs explain, that’s shorthand for
(which sets the headers) and
If you want to understand how it all works, here’s the source: https://github.com/visionmedia/express/blob/master/lib/response.js
As to creating a CSV, I’ve never had to do this, but you can’t go wrong searching npm for “csv”.