node.js - mongoose 删除之前上传的文件
问题描述
我正在使用 multer 从客户端上传文件,使用的格式非常好。我还实现了 editRouter 来编辑帖子内容。因此,如果我在编辑表单中上传文件,该文件也会被上传并更新帖子。但是,以前的文件仍保留在服务器上。删除帖子时也有类似的问题。在这种情况下,如何确保之前上传的文件也被删除?
postRouter.js
postRouter.route('/:postId/edit')
.put(authenticate.verifyUser, upload.single('image'), (req, res, next) => {
if(req.file)
{
req.body.image = req.file.filename;
}
Posts.findByIdAndUpdate(req.params.postId, { $set: req.body }, {new: true})
.then((post) => {
console.log('The post has been edited successfully');
res.statusCode = 200;
res.setHeader('Content-Type','text/html');
res.redirect('/post/'+post._id+'/view');
}, (err) => next(err))
.catch((err) => next(err));
});
postRouter.route('/:postId/view')
.delete(authenticate.verifyUser, (req,res,next) => {
Posts.findByIdAndRemove(req.params.postId)
.then((resp) => {
console.log('Post with id: '+req.params.id+' removed!');
res.statusCode = 200;
res.setHeader('Content-Type','text/html');
res.redirect('/');
}, (err)=>next(err))
.catch((err) => next(err));
});
请帮忙!谢谢!
解决方案
推荐阅读
- database - 我无法从 VB.net 的 MS 访问数据库中删除一行
- python - Python二叉树中序遍历生成器函数
- jquery - jQuery:处理来自更改选择的事件
- flutter - 从firebase获取数据后如何将数据放入Hivedb?并从 Hivedb 访问数据 1 小时?
- javascript - 在嵌套的对象数组中查找数组
- android - '设置为墙纸和锁屏' PWA android
- android - 当我使用 Coroutines 向数据库添加新项目时,Room 数据库如何在 UI 中更新我的 RecyclerView?
- r - 如何在 googlesheet 中追加新数据
- google-apps-script - 在谷歌脚本项目中搜索触发器
- python - Python asyncio SSL 传输未关闭