2 つのディレクトリの内容を圧縮し、結果の .zip ファイルをダウンロードしようとしています。1 つのディレクトリには .txt ファイルが含まれ、もう 1 つのディレクトリには .jpg が含まれます。アーカイバーを使用してファイルを圧縮し、ノード js でエクスプレス フレームワークを実行しています。プロジェクトルートに作成された結果のzipファイルが期待どおりに展開されるため、問題はダウンロードステップにあると考える傾向がありますが、ファイルをダウンロードすると、「エラー2 - そのようなファイルまたはディレクトリはありません. "
app.get('/download',function(req, res){
zipFile = new Date() + "-Backup.zip";
var output = fs.createWriteStream(__dirname +"/backups/"+ zipFile);
var archive = archiver('zip');
output.on('close', function() {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
archive.on('error', function(err) {
throw err;
});
archive.pipe(output);
var files1 = fs.readdirSync(__dirname+'/posts');
var files2 = fs.readdirSync(__dirname+'/uploads');
for(var i = 0; i< files1.length; i++){
archive.append(fs.createReadStream(__dirname+"/posts/"+files1[i]), { name: files1[i] });
}
for(var i = 0; i< files2.length; i++){
archive.append(fs.createReadStream(__dirname+"/uploads/"+files2[i]), { name: files2[i] });
}
archive.finalize();
res.download(__dirname + "/backups/" + zipFile, zipFile);
});
zipFile はグローバル変数です。
on 'close' ログは適切に起動し、エラーは発生しませんが、ファイルはダウンロード後に開かれません。応答ヘッダーまたは私が認識していない何かに問題がありますか?
助けてくれてありがとう。