javascript - 显示来自 GridFs (MongoDB) 的图像

标签 javascript node.js mongodb mongoose gridfs-stream

我使用以下代码使用 GridFs 读取保存在 MongoDB 中的图像文件:

app.get('/picture', function(req, res) {

 var readstream = gfs.createReadStream({
    filename: 'trooper.jpeg'
 });

 readstream.on('data', function (data) {
  // We got a buffer of data...

 var buf2 = new Buffer(data).toString('base64'); 
 res.send(buf2.toString())
 console.log(buf2.toString());
 console.log(data);
});
  readstream.on('end', function () {
// File finished reading...
});

});

console.log(buff.toString());的输出是:

dHJvb3Blci5qcGVn

console.log(data);的输出是:

<Buffer 74 72 6f 6f 70 65 72 2e 6a 70 65 67>

为了显示图像,我这样做了:

<img src="data:image/jpeg;base64,dHJvb3Blci5qcGVn">

我无法从 GridFs MongoDB 读取和显示 html 格式的图像

更新:

我已经尝试过这个:

app.get('/picture', function(req, res) {
res.contentType('image/jpeg');
var readstream = gfs.createReadStream('trooper.jpeg');
readstream.pipe(res);

});

上面的输出是:

enter image description here

最佳答案

除非您确实需要将图像嵌入到页面中,否则请按照 saintedlama 的答案使用管道。

dHJvb3Blci5qcGVn 是 base64 编码的字符串“trooper.jpeg”。请确保您在第一次时正确地将二进制数据保存到 GridFS。

您可以query it directly并检查存储在数据库中的文件的内容。

关于javascript - 显示来自 GridFs (MongoDB) 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921171/

相关文章:

javascript - 如何在 Google Chrome 中查看页面上的所有 JavaScript 函数和变量?

javascript - 在一行中显示尽可能多的元素,如果不是所有元素都可以容纳,则添加表示剩余元素数量的附加元素

node.js - 如何匹配 Thinky ORM 中的字段?

linux - 需要了解在 ec2-linux 实例中安装 mongodb 服务器的代码

node.js - 如何通过nodejs驱动在MongoDB上设置slaveOk?

javascript - 如何创建全屏 youtube 嵌入视频点击 youtube 的 ytp-large-play-button 类?

javascript - 为什么我的 for 循环从最后一项开始并在一次迭代后停止运行?

node.js - 在执行 'npm install brain.js' 时如何解决这个奇怪的错误?

node.js - npm 安装 403 问题

c++ - 如何将 MongoDB 与 Qt C++ 连接起来?