【发布时间】:2020-09-01 15:02:00
【问题描述】:
我正在尝试通过我的 express 应用程序从 cloudinary 中删除图像,只有当我缩短 url 以匹配我创建的 cloudinary 文件夹时它才有效
pictures : "Images/zebre_s2gtto"
我的图片的完整网址是
https://res.cloudinary.com/beloved/image/upload/v1589562378/Images/zebre_s2gtto.jpg
主要问题是图片url存储在数据库中,包含完整的图片url。
当我想从 cloudinary 和我的数据库中删除图像时,如果我提到完整的 url,图像会从我的数据库中删除,但不会在 cloudinary 中,如果我提到来自 cloudinary 的短 url,图像会从 cloudinary 中删除但是 url 没有从我的数据库中删除,因为 mongo 正在等待图像的完整 url,而 cloudinary 需要缩短的 url。
我的猫鼬模式
{
pictures : Array
}
我想做什么
deletePictures = async (req, res) => {
const img = req.body.pictures
try {
await cloudinary.v2.uploader.destroy(
img, { invalidate: true, resource_type: "image" }, async (error, result)=> {
if (error){
return res.status(400).json(error)
}
await Property.updateOne({$pull : { pictures: img }});
res.json(result)
})
}
catch (e) {
res.status(500).json('Something went wrong')
}
};
使用 PUT 方法的邮递员测试
{
"pictures" : "https://res.cloudinary.com/beloved/image/upload/v1589562378/Images/zebre_s2gtto.jpg"
}
【问题讨论】:
标签: node.js express mongoose cloudinary