Javascript 如何在node.js中发送多个图像作为响应

Javascript 如何在node.js中发送多个图像作为响应,javascript,image,node.js,mongodb,Javascript,Image,Node.js,Mongodb,我在mongodb中存储了更多的图像 exports.save = function (input, image, callback) { db.collection("articles", function (error, collection) { collection.save(input, {safe: true}, callback); }); } 我已从数据库中检索到所有图像 find().toArray(function(err,result)

我在mongodb中存储了更多的图像

exports.save = function (input, image, callback)
{
    db.collection("articles", function (error, collection)
    {
      collection.save(input, {safe: true}, callback);
    });
}
我已从数据库中检索到所有图像

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");
     }
});
find().toArray(函数(err,result)
{
console.log(result.length)//长度为5

对于(var i=0;i我想,没有办法在一个响应中发送多个图像。但是,也许您可以尝试在循环中以某种方式合并这些图像,然后发送一个由N个图像合并在一起组成的大图像。

我刚刚遇到了一个类似的问题。您需要将“结果”数组传递给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…)

您将如何使用组中的图像,以及为什么要将它们分组在一个响应中?这将帮助我们回答您的问题您是否尝试流式传输图像(如视频)或发送多个图像以一次下载(如电子邮件中的文件附件)?如果您正在进行流媒体传输,您可能希望实现类似motion jpeg的功能:数据库包含10幅图像。当您单击“显示”按钮时,我必须在浏览器上显示所有图像。当您单击一幅图像时,我必须将特定的一幅图像显示到新的tap中。您了解我的要求吗?图像有多大?如果图像很小,您可以随时查看base64使用spdy协议对它们进行编码并将它们发送到一个大的JSON arrayConsider中。一些现代浏览器支持它,旧浏览器支持回退。