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隨後被損壞。我無法弄清楚爲什麼。