2015-07-19 58 views
0

我一直试图直接从请求到远程服务器流二进制数据(PDF,图像,其他资源),但迄今没有运气。要清楚,我不想将文档写入任何文件系统。客户端(浏览器)将向我的节点进程发出请求,这个请求会随后向远程服务器发出GET请求,并将该数据直接传回给客户端。Node.js - 流二进制数据直接从请求到远程服务器

var request = require('request'); 

app.get('/message/:id', function(req, res) { 

    // db call for specific id, etc. 

    var options = { 
    url: 'https://example.com/document.pdf', 
    encoding: null 
    }; 
    // First try - unsuccessful 
    request(options).pipe(res); 

    // Second try - unsuccessful 
    request(options, function (err, response, body) { 
    var binaryData = body.toString('binary'); 
    res.header('content-type', 'application/pdf'); 
    res.send(binaryData); 
    }); 

}); 

把数据和在console.logbinaryData表明,正确的数据是存在的,但它被下载的PDF随后被损坏。我无法弄清楚为什么。

回答

0

哇,没关系。发现邮差(Chrome应用程序)以某种方式劫持请求和响应。我的代码摘录中的// First Try示例在浏览器中正常工作。

相关问题