当更改mongodb(更新)时,如果图像被更改,则更改db(图像路径)并上传图像并删除图像(之前),如果不是,则只需上传图像..
router.put('/test/update/:first_idx/:second_idx', isAuthenticated, upload.array('images', 5), TestController.updateSomthing)
upload.array('images'
)在这可以保存或删除图像取决于req.body
?
在将图像保存到MongoDB之前需要考虑的一件事是文档大小限制。文档最多只能为16MB。如果您允许一组图像,尤其是当阵列太大时,您可能会遇到大小限制问题。
你可以找到更多关于这个限制here。
要绕过此大小限制,请在服务器上存储文件的相对路径,并将文件存储在文件夹中。
这是一个关于如何使用Multer / MongoDB创建你想要的file store的教程。如果您想继续将文件存储在数据库中并进行比较,本教程将为您奠定基础。您可以将图像存储在Base64中,然后检查上载是否存在具有该base64字符串的其他图像。如果是,请不要保存。这是假设通过比较图像,您的意思是检查是否存在完全相同的图像。
我不认为比较图像以确保它们是相同的是有效的,因为这听起来非常昂贵。我只想对每个PUT进行完全写入(除非你必须担心并发)。