我想以zip文件的形式下載數據庫中的所有文件。動態創建多個文件nodejs
如果我只想下載元素,我可以很容易地設置它的頭和內容類型,然後可以發送它的緩衝區。
db.collection("resource").find({}).toArray(function(err, result) {
res.setHeader('Content-disposition', 'attachment; filename=' + result[0].name);
res.contentType(result[0].mimetype);
res.send(result[0].data.buffer);
}
現在我想創建一個文件夾和每個result
元素添加到該文件夾,然後將其發送。
以下代碼僅返回第一個文件。這是合理的,因爲我立即發送緩衝區。
for(var i=0; i < result.length; i++){
res.setHeader('Content-disposition', 'attachment; filename=' + result[i].name);
res.send(result[i].data.buffer);
}
我想將它們添加到數組中。
for(var i=0; i < result.length; i++){
var obj = {name: result[i].name, buffer: result[i].data.buffer};
files.push(obj);
}
res.setHeader('Content-disposition', 'attachment; filename=' + "resource");
res.contentType('application/zip');
res.send(files);
這回我一個文本文件resource
其中包括name
和buffer
爲JSON格式。
即使我將contentType更新爲application/zip,它將以文本格式返回。
如何創建此文件,添加到文件夾並將文件夾類型設置爲zip?