一尘不染

Express服务器发送空的PDF文件

node.js

我有一条发送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 Server app.use(express.bodyParser());

有人可以帮助我吗?


阅读 220

收藏
2020-07-07

共1个答案

一尘不染

在使用connect-livereload中间件时,我已经看到了这一点。问题在于connect-
livereload正在将js代码片段注入pdf数据流。它还可能导致其他非HTML数据出现问题。好消息是,这只会在开发过程中引起问题(您不应在生产中加载此中间件。)

该问题最近已修复,但是许多模板都包含较旧的版本,因此请检查package.json文件并在必要时获取最新版本。最新的connect-
livereload版本是0.5.3。

2020-07-07