I try to return some binary data with Express. In the example, it\'s a PDF but theorically, this can be any sort of file.
But focus on the pdf for the moment. I wrot
Here is my slightly cleaned up version of how to return binary files with Express. I assume that the data is in an object that can be declared as binary and has a length:
exports.download = function (data, filename, mimetype, res) {
res.writeHead(200, {
'Content-Type': mimetype,
'Content-disposition': 'attachment;filename=' + filename,
'Content-Length': data.length
});
res.end(Buffer.from(data, 'binary'));
};
I found a more simple solution :
request(req.url).pipe(res);
This pipes the original response from distant Web Service directly to my response! I got the correct file regardless of the file type.