Express 服务器发送空 PDF 文件
Express server send empty PDF file
我有一个发送 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 文件,其页数与原始文件相同。
我用 app.use(express.bodyParser());
配置了我的快速服务器。
谁能帮帮我?
我在使用 connect-livereload 中间件时看到过这个。问题是 connect-livereload 将 js 代码片段注入到 pdf 数据流中。它还可能导致其他非 html 数据出现问题。好消息是这只会在开发过程中引起问题(你不应该在生产中加载这个中间件。)
最近已修复此问题,但许多模板包含旧版本,因此请检查您的 package.json 文件并在必要时获取最新版本。最新的 connect-livereload 版本是 0.5.3.
如果例如ignore: ['.pdf']
行不起作用,可能是因为您没有查询具有相关后缀的资源。
例如如果您查询具有 id 的资源:
localhost:9000/api/export/getExport?destinationId=56179bb36bc51bb00836c3ed
您无法过滤文件后缀。你可以做的是通过路径过滤:
app.use( require( 'connect-livereload' )( {
ignore: [ /api\/export\/getExport.*/ ]
} ) );
在 connect-livereload 查看其他可能的选项。
我有一个发送 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 文件,其页数与原始文件相同。
我用 app.use(express.bodyParser());
配置了我的快速服务器。
谁能帮帮我?
我在使用 connect-livereload 中间件时看到过这个。问题是 connect-livereload 将 js 代码片段注入到 pdf 数据流中。它还可能导致其他非 html 数据出现问题。好消息是这只会在开发过程中引起问题(你不应该在生产中加载这个中间件。)
最近已修复此问题,但许多模板包含旧版本,因此请检查您的 package.json 文件并在必要时获取最新版本。最新的 connect-livereload 版本是 0.5.3.
如果例如ignore: ['.pdf']
行不起作用,可能是因为您没有查询具有相关后缀的资源。
例如如果您查询具有 id 的资源:
localhost:9000/api/export/getExport?destinationId=56179bb36bc51bb00836c3ed
您无法过滤文件后缀。你可以做的是通过路径过滤:
app.use( require( 'connect-livereload' )( {
ignore: [ /api\/export\/getExport.*/ ]
} ) );
在 connect-livereload 查看其他可能的选项。