修改mongo数据库时,如何上传图像? (node.js,multer)

时间:2019-04-22 08:57:56

标签: node.js multer

当mongodb更改(更新)时,如果图像更改,则更改db(图像路径)并上传图像并删除图像(之前)(如果未更改),则仅上传图像。

router.put('/test/update/:first_idx/:second_idx', isAuthenticated, upload.array('images', 5), TestController.updateSomthing) 

upload.array('images')可以根据req.body保存或删除图像吗?

1 个答案:

答案 0 :(得分:0)

在将图像保存到MongoDB之前要考虑的非常重要的事情是文档大小限制。一个文档最多只能有16MB。特别是如果允许使用图像阵列,则当阵列太大时,可能会遇到尺寸限制问题。

您可以找到有关此限制here的更多信息。

要解决此大小限制,请将文件的相对路径存储在服务器上,然后将文件存储在文件夹中。

这里是有关如何使用Multer / MongoDB创建所需的file store的教程。如果要继续将文件存储在数据库中并进行比较,本教程将为您奠定基础。您可以将图像存储在Base64中,然后在上载时检查是否存在具有该base64字符串的其他图像。如果是这样,请不要保存。这是通过比较图像来假设的,您的意思是检查是否存在完全相同的图像。

我认为比较图像以确保图像相等并不有效,因为这听起来在计算上非常昂贵。我只会对每个PUT进行完全覆盖(除非您不必担心并发性。)