3

我正在使用 BinData 类型将图像存储在 mongodb 中。

我可以使用mongojs查询数据库。

db.images.findOne({

                   file_name: 'temp.jpg',
                  },

              function(err, data){

                console.log(data.image); // image buffer appears on the console
                res.writeHead(200, {'Content-Type': 'image/jpg'});
                res.end(data.image);

           });

这会产生“TypeError:第一个参数必须是字符串或缓冲区”。

我很确定这与缓冲区或编码有关。有人可以解释一下在发送到浏览器之前我应该​​对图像数据做什么吗?

4

1 回答 1

0
  • 设置正确的内容类型
  • 设置正确的内容长度

简短的例子我如何从 mongodb gridfs 提供我的文件

.getFileFromGridFs(doc,function(err, buffer){
  if(err) return next(err)
  res.setHeader('content-type',doc.mimeType)
  res.setHeader('content-length',doc.size)
  buffer.pipe(res)
})
于 2012-09-02T14:23:57.883 回答