Экспресс-сервер отправляет пустой файл PDF

У меня есть маршрут, который отправляет файл в формате pdf:

app.get('/teste',function(req,res,next){ res.setHeader('content-type','application/pdf'); res.download(app.get('appPath')+'/teste.pdf'); } 

Я попытался использовать другие решения, которые делают более или менее одно и то же:

 app.get('/teste',function(req,res,next){ res.setHeader('content-type','application/pdf'); fs.createReadStream(app.get('appPath')+'/teste.pdf').pipe(res); } 

а также

 app.get('/teste',function(req,res,next){ res.setHeader('content-type','application/pdf'); res.sendfile(app.get('appPath')+'/teste.pdf'); } 

Моя проблема в том, когда я прошу этот маршрут в браузере, и я получаю пустой файл PDF с тем же количеством страниц, что и исходный файл.

Я настроил свой express-сервер с помощью app.use(express.bodyParser()); ,

Кто-нибудь может мне помочь?

Я видел это при использовании промежуточного программного обеспечения connect-livereload. Проблема в том, что connect-livereload вводит fragment кода js в stream данных pdf. Это может также вызвать проблемы с другими не-html-данными. Хорошей новостью является то, что это должно только вызывать проблемы во время разработки (вы не должны загружать это промежуточное ПО в производство).

Это было недавно исправлено, но многие шаблоны include более старую версию, поэтому проверьте файл package.json и при необходимости получите последнюю версию. Самая последняя версия с подключением к загрузке – 0.5.3.

Если строка eg ignore: ['.pdf'] не работает, возможно, это связано с тем, что вы не запрашиваете ресурс с соответствующим суффиксом.

Например, если вы запрашиваете ресурс с идентификатором:

 localhost:9000/api/export/getExport?destinationId=56179bb36bc51bb00836c3ed 

вы не можете фильтровать суффикс файла. Вместо этого вы можете фильтровать по пути:

 app.use( require( 'connect-livereload' )( { ignore: [ /api\/export\/getExport.*/ ] } ) ); 

Посмотрите на другие возможные варианты при подключении .