问题描述
我正在构建一个图像压缩器(带有节点,react),在通过 res.download()
提供压缩图像后,我想删除该文件以节省空间。但是,如果我将 await unlink(path)
放在 res.download(path)
之后,在客户端下载失败并在服务器中显示错误。 如何在不将文件发送给客户端的情况下实现成功删除?
我在后端的代码:
app.get('/download/:imageName',async (req,res)=>{
let imageName = req.params.imageName
let path = 'uploads/'+imageName;
const compressedImage = await imagemin([path],{
destination: "compressed",plugins: [
imageminpngquant({
quality: [0.6,0.8]
}),imageminMozjpeg(),imagemingifsicle({lossy: 70}),imageminSvgo({
plugins: extendDefaultPlugins([
{name: 'removeViewBox',active: false}
])
})
]
});
await res.download(process.cwd()+"/"+compressedImage[0].destinationPath)
let compressedPath = 'compressed/'+path
await unlink(compressedPath,(err)=>{
if(err) throw err;
console.log(compressedPath+ " hase been deleted")
})
})
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)