データベース内のすべてのファイルを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);
これは私にJSON形式としてname
とbuffer
が含まれたテキストファイルresource
を返されました。
application/zipとしてcontentTypeを更新しても、テキスト形式で返されます。
このファイルを作成してフォルダに追加し、フォルダタイプをzipとして設定するにはどうすればよいですか?すべての