我確定我錯過了一些明顯的問題,但問題的要點是我收到一個來自Mapbox調用的PNG,意圖寫它到文件系統並將其提供給客戶端。我已經成功地轉播了這個電話,收到了原始數據的回覆並且寫了一個文件。問題是無論我採取什麼方式,我的文件都會被截斷,我已經用盡了我找到的答案。我已經將原始響應放到了日誌中,並且它很健壯,但是我創建的任何文件都傾向於關於塊的值不可讀的數據。寫一個圖像到文件,通過節點上的HTTP請求接收
下面是我目前在文件製作中使用的代碼。在幾次失敗和可比較的無果循環之後,我嘗試將這個緩衝移動作爲最後的一步。任何幫助將不勝感激。
module.exports = function(req, res, cb) {
var cartography = function() {
return https.get({
hostname: 'api.mapbox.com',
path: '/v4/mapbox.wheatpaste/' + req.body[0] + ',' + req.body[1] + ',6/750x350.png?access_token=' + process.env.MAPBOX_API
}, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
var mapPath = 'map' + req.body[0] + req.body[1] + '.png';
var map = new Buffer(body, 'base64');
fs.writeFile(__dirname + '/client/images/maps/' + mapPath, map, 'base64', function(err) {
if (err) throw err;
cb(mapPath);
})
})
});
};
cartography();
};
我說錯了,並說「服務於客戶」。在這種情況下,更準確地說,目的是編寫文件。返回的響應只是所創建文件的名稱。 –