res.download() not working in my case

express, javascript, node.js

Solution

Let Express set the correct headers and just do this:

res.get('/download', function(req, res) {
  res.download(__dirname + 'jsonFile.json', 'jsonFile.json');
});

(doc)

EDIT: since you're requesting `/download` through an AJAX call, you have to change your setup because most (all?) browsers will not show a download dialog in that case.

Instead, you can create a new window from your front end code to trigger the dialog:

window.open('/download?foo=bar&xxx=yyy');

Problem

I am using nodejs and expressjs framework to download a file 'jsonFile.json' from server. i am using the following code ``` res.get('/download', function(req, res) { res.setHeader('Content-disposition', 'attachment; filename=jsonFile.json'); res.setHeader('Content-Type', 'text/json'); res.download(__dirname + 'jsonFile.json'); } }); ``` But this results into a response with whole content of file. i was expecting browser to ask me to save the file in local disk. How do i save the file in local disk.???

Original source