私はnode.js 0.10.33を使用しており、2.51.0をリクエストしています。
以下の例では、リクエストを使用して画像をプロキシする単純な Web サーバーを構築しました。同じイメージをプロキシするために設定された 2 つのルートがあります。
/pipeは、生のリクエストをレスポンスにパイプするだけです
/callbackは、リクエストのコールバックを待機し、レスポンス ヘッダーとボディをレスポンスに送信します。
パイプの例は期待どおりに機能しますが、コールバック ルートは画像をレンダリングしません。ヘッダーとボディは同じように見えます。
画像が壊れる原因となっているコールバック ルートはどうですか?
コード例は次のとおりです。
var http = require('http');
var request = require('request');
var imgUrl = 'https://developer.salesforce.com/forums/profilephoto/729F00000005O41/T';
var server = http.createServer(function(req, res) {
if(req.url === '/pipe') {
// normal pipe works
request.get(imgUrl).pipe(res);
} else if(req.url === '/callback') {
// callback example doesn't
request.get(imgUrl, function(err, resp, body) {
if(err) {
throw(err);
} else {
res.writeHead(200, resp.headers);
res.end(body);
}
});
} else {
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.write('<html><head></head><body>');
// test the piped image
res.write('<div><h2>Piped</h2><img src="/pipe" /></div>');
// test the image from the callback
res.write('<div><h2>Callback</h2><img src="/callback" /></div>');
res.write('</body></html>');
res.end();
}
});
server.listen(3000);
これで結果