router.get('/excel', (req, res) => {
Person.find()
.then((result) => {
const writeStream = fs.createWriteStream("file.xls");
const header = "Name" + "\t" + " Age" + "\n";
writeStream.write(header);
for (let i = 0; i < result.length; i++) {
const row = result[i].name + "\t" + result[i].age + "\n";
writeStream.write(row);
}
writeStream.close();
}).then(() => {
res.setHeader('Content-disposition', 'attachment; filename=file.xls');
var filestream = fs.createReadStream(__dirname + '/../file.xls');
filestream.pipe(res);
}).catch((err) => {
res.send(err);
});
});
I have this code block to write an xls file and download it from client end. Though it gives the file with content first one or two times, thereafter it gives an empty xls file. Can someone help me out with this?