将图像保存到数据库

时间:2013-11-06 19:07:02

标签: node.js mongodb

我正在Node中构建一个个人项目,我希望我的用户能够上传“封面”照片。我现在使用的方法是将这些图像保存到我的fs,然后在MongoDB数据库中添加该图像的路径。因此,如果用户添加图像,我将该图像添加到我的图像文件夹,名称为userID.jpg,并将“/public/images/userID.jpg”保存为我的数据库中的字符串。我觉得这种方法可能不是最有效的。我应该直接将其保存到数据库吗?有什么优点或缺点?

1 个答案:

答案 0 :(得分:1)

将图像存储为文件实际上非常有效(除非我们正在谈论10个K&#39的图像,但仍然如此)。此外,在服务方面,图像可能会由express.static()(假设您正在使用Express)处理,这也非常轻量级。

但是,如果您最终想要更具可扩展性,可以查看使用GridFS,它在MongoDB之上实现类似存储的文件系统。我使用gridfs-stream进行类似的事情(上传/下载),它运行正常。

如果图像足够小(小于约16MB,这是BSON文档的大小限制),您可能甚至不需要使用GridFS,只需将图像存储为Binary类型。