2013-05-17 35 views
1

我試圖提供已存儲在Mongo文檔中的圖像。我使用快遞,快遞資源和貓鼬。從Mongo中提供已保存的緩衝區

數據是JPG,存儲在我的模式的緩衝區中。似乎它是正確的,因爲我可以使用cli讀取數據。

然後我運行一個查找,獲取該字段並嘗試發送它。見代碼:

res.contentType('jpg'); 
res.send(img); 

我不認爲這是一個存儲的問題,因爲我在這裏執行相同的動作:

var img = fs.readFileSync(
    __dirname + '/../../img/small.jpg' 
); 
res.contentType('jpg'); 
res.send(img); 

在顯示圖像(作爲一個破碎的圖標)的瀏覽器。

我想知道是否這是一個快速的資源問題,因爲我有格式設置爲JSON,但是我確實在發送數據之前覆蓋內容類型。

劃痕頭

+0

嘗試使用'image/jpeg'作爲內容類型。 –

回答

2

我設法解決這個我自己。似乎我正在使用正確的方法從快遞發送數據,但沒有妥善保存(棘手!)。

備查任何處理圖像下載和緩衝區管理它們,這裏是使用請求包中的一些示例代碼:

request(
    { 
     uri: uri, 
     encoding: 'binary' 
    }, 
    function (err, response, body) 
    { 
     if (! err && response.statusCode == 200) 
     { 
      var imgData = new Buffer(
       body.toString(), 
       'binary' 
      ).toString('base64'); 
      callback(null, new Buffer(imgData, 'base64')); 
     } 

    } 
); 

在蒙戈你需要設置與類型緩衝的文檔屬性來成功地存儲它。似乎這個問題是由於我將它保存在Mongo中。

希望能夠在未來節省時間。 =)