如何从API响应中parsingJPEG并发送到Node.js / Express的前端

我正在使用Google的Street View Image API来获取一个jpeg,然后我想通过Node.js / Express后端的响应体传递给我的前端。

目前,我的getStreetView函数从Google API获得正确的响应。 然后,我将这个response.body (jpeg)传递给我自己的请求处理程序。 但是,当我向该处理程序发出请求时,尽pipe请求已成功,并且包含了我已经分配的包含'Content-Type': 'image/jpeg'标题'Content-Type': 'image/jpeg' ,但图像不显示。 图像数据存在,它只是不显示:

显示失败的屏幕截图

所以要重申 – Postman对API的请求显示图像。 当我的处理程序调用getStreetView ,该请求也正在工作。 但是,它传递给GET /city时,它收到的图像不知何故正在翻译中。

这是一个编码问题? 我只是发送图片url而不是图片本身,但url包含我的API密钥 – 我认为这可能会让我在客户端易受攻击。 任何帮助非常感谢!

 var getStreetView = function(newLat, newLong, callback) { var api_key = process.env.API_KEY; var url = 'https://maps.googleapis.com/maps/api/streetview?' + 'size=' + 400 + 'x' + 400 + '&location=' + newLat + ',' + newLong + '&fov=' + 120 + '&pitch=' + 10 + '&key=' + api_key; request(url, function(error, response, body) { if (error) { console.log('getStreetView Error: ', error); } else { callback(body); //same error when using response.body } }); }; // REQUEST HANDLING app.get('/city', function(req, res) { City.findOneRandom(function(err, result) { if (err) { console.log('Cities.findOneRandom Error: ', err); } else { var name = result.name; var country = result.country; var lat = result.latitude; var long = result.longitude; randomizeLocation(lat, long, function(newLat, newLong) { getStreetView(newLat, newLong, function(image) { res.writeHead(200, { 'City': name, 'Country': country, 'Content-Type': 'image/jpeg' }); res.end(image); }); }); } }); });