多个文件附加在节点js的响应对象中

时间:2016-10-18 11:53:31

标签: javascript arrays node.js mongodb http

gfs.files.find({}).toArray(function(err, file) {
    if (!err) {
        console.log('file length ', file.length);
        if (file.length > 0) {
            file.forEach(function(each) {
                process.setMaxListeners(0);
                var mime = 'image/jpeg';
                res.set('Content-Type', mime);
                read_stream = gfs.createReadStream({ "filename": each.filename });
                read_stream.pipe(res, { end: false });
                done++;
            });
            read_stream.on('end', function() {
                process.setMaxListeners(0);
                if (done === file.length) {
                    res.send();
                }

            });

        } else {
            res.json('File Not Found');
        }
    }
});

它无法正常工作。浏览器中只显示一个文件。我现在做什么?没有任何zip文件。

1 个答案:

答案 0 :(得分:1)

如果您的目标客户端是网络浏览器,那么您就不能,因为http协议不允许单个请求进行多次下载。

您可以考虑使用所请求的文件创建存档(zip)并发送。