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.log
binaryData
表明,正确的数据是存在的,但它被下载的PDF随后被损坏。我无法弄清楚为什么。