Express.js下载后删除文件(本地FS)



我已经得到了一个Express处理程序的以下代码,其目的是在目录条目中找到有效的文件路径后下载文件-处理程序有一个命令行选项,用于在成功下载后删除所述文件:

res.download(filePath, err => {
if (err) {
return next(err)
}
if (AUTO_DELETE_ENABLED) {
rmSync(filePath)
console.log('deleted after download...')
}
})

在浏览器中,当输入有效的文件路径时,下载似乎开始,但文件立即被删除,而不等待。

谁能给我解释一下我该怎么做?Expressres.download接受回调,我使用该回调来动态确定命令行设置是否启用,如果启用,则删除该文件。

那么为什么这不起作用呢?我该怎么做才能保证这一切发生呢?

目前,我有一个3000ms的setTimeout,可以确保实现所需的功能,但一些视频可能需要更长的时间来下载…

问:我使用rmSync可能是问题的一部分吗?其余的代码大部分是异步的。

感谢任何帮助!

你应该使用unlink函数:https://nodejs.org/api/fs.html fs_file_system

可以使用回调函数在删除完成或发生错误时发出信号。

最新更新