2015-07-19 83 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示例在瀏覽器中正常工作。

相關問題