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