我使用像这样的
在mongodb中存储了更多图像exports.save = function (input, image, callback)
{
db.collection("articles", function (error, collection)
{
collection.save(input, {safe: true}, callback);
});
}
我从db中检索了所有图像。
find().toArray(function(err,result)
{
console.log(result.length)//length is 5
for(var i=0;i<results.length;i++)
{
res.contentType(results[i].imageType);
res.end(results[i].image.buffer, "binary");
}
});
如何将此图像转换为二进制文件以及如何将响应发送到client.i已尝试for循环但我得到此错误后无法设置标头后发送res .........如何解决
答案 0 :(得分:0)
我想,没有办法在一个单一的响应中发送多个图像。但也许您可以尝试在循环中以某种方式合并这些图像,然后发送一个大图像,其中包含N个图像合并在一起。
答案 1 :(得分:0)
我刚遇到类似的问题。您需要将“结果”数组传递给Jade模板(例如)或手动创建包含您找到的图像(而不是数据)的HTML页面 - 而不是实际图像的虚拟链接。
res.render('image_list.jade', {results:results});
然后您的模板可能如下所示:
block content
div.container
header
h1 Images in a list
div#images
- each result in results
div.myimage
img(src='http://localhost:3000/oneimage'+result._id)
在您的app.js中,您需要提供一条路线/oneimage
,它会像您在代码中一样返回单个图片(数据)(即将findAll(...)
替换为findOne(...., id, ...)
< / p>