Whiteship
Whiteship

Reputation: 1869

How to implement a file download with Node.js's fs module and express

Because the file should be generated dynamically, maybe I should use the fs modules's writeStream. But I couldn't find any example codes with my poor googling. Sorry.

More specifically, I want to give a CSV file or a PDF file with my datas in the MongoDB, when someone requests.

Anyone, please give me some hints.

Thanks.

Upvotes: 8

Views: 9475

Answers (2)

Whiteship
Whiteship

Reputation: 1869

With the express, I can implement like this.

app.get('/down2', function(req, res){
  var filename = 'data.csv';
  res.attachment(filename);
  res.end('hello,world\nkeesun,hi', 'UTF-8'); //Actually, the data will be loaded form db.
});

How simple is it. Thanks.

Upvotes: 16

Andrey Sidorov
Andrey Sidorov

Reputation: 25456

you don't need fs, just stream your data from db in request handler

you can set file metadata using Content-Disposition header

Content-Type: image/jpeg
Content-Disposition: attachment; filename=genome.jpeg; 
  modification-date="Wed, 12 Feb 1997 16:29:51 -0500";
Content-Description: a complete map of the human genome

Upvotes: 2

Related Questions