从数据库中清除损坏图像的最佳方法。我的mongodb数据库中有30,000多个图像条目,但随着时间的推移,许多图像条目都被破坏了。我想只返回在服务器端没有破坏的图像。查找所有损坏的图像并添加参数或从数据库中删除损坏的图像的最佳方法是什么?
目前,我正在将所有图像返回到前端,然后隐藏在' onerror'属性。我应该以某种方式导出并迭代所有图像并获得图像ID的导出吗?是否有更好的选择或我可以使用什么来做到这一点?只是在寻找建议。
答案 0 :(得分:0)
您可以使用Blaze模板事件处理程序来捕获图像加载错误,然后将图像标记为失败,或者只删除它。自我清洁,一直在运行...
Template.ImageLoader.events({
//TODO: possibly add an extra class name on the img tag, to make sure you only catch errors from your collection.
'error img': function(event, template) {
const url = event.currentTarget.src;
//TODO: find the image in your collection, using the url
//TODO: perform cleanup (flag or delete)
alert(`error loading image ${url}`);
}
});
我建议在每次发生加载错误时为您的集合添加一个错误计数器并$inc
。加载错误计数达到一定数量后,将其删除。