I have a route that sends a pdf file:
app.get('/teste',function(req,res,next){
res.setHeader('content-type','application/pdf');
res.download(app.get('appPath')+'/teste.pdf');
}
I tried use another solutions that do more or less the same thing:
app.get('/teste',function(req,res,next){
res.setHeader('content-type','application/pdf');
fs.createReadStream(app.get('appPath')+'/teste.pdf').pipe(res);
}
and
app.get('/teste',function(req,res,next){
res.setHeader('content-type','application/pdf');
res.sendfile(app.get('appPath')+'/teste.pdf');
}
My problem is when I ask this route in browser and I receive an empty pdf file with the same number of pages that the original file.
I configured my express server with app.use(express.bodyParser());
.
Anyone can help me?
I've seen this when using connect-livereload middleware. The problem is that connect-livereload is injecting a js code snippet into the pdf data stream. It can also cause problems with other non-html data. The good news is that this should only cause problems during development (you shouldn't be loading this middleware in production.)
This was recently fixed but a lot of templates include an older version so check your package.json file and get the latest version if necessary. The most recent connect-livereload version is 0.5.3.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With