【发布时间】:2017-08-30 06:05:53
【问题描述】:
我正在尝试在快速 HTTP 获取请求后从我的 Node 应用程序从另一个站点下载文件,然后返回文件以供下载。我尝试了多种获取文件的方法,使用管道、blob 等,但我在黑暗中掌握。该代码可能会让您更深入地了解我想要实现的目标:
var router = require('express').Router();
var fs = require('fs');
var http = require('http');
router.get('/download/:file', function (req, res, next) {
http.get('http://anothersite/' + req.params.file, function(response) {
res.setHeader('Content-disposition', 'attachment; filename=' + req.params.file);
res.setHeader('Content-type', 'application/octet-stream');
res.download(fs.createWriteStream(req.params.file).pipe(response));
});
});
这给了我一个错误“无法管道。不可读”。该文件本身不是常规文件格式(它是来自我们定制软件的文件,具有自己的扩展名)。
我错过了什么?
【问题讨论】: