1

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

4

1 回答 1

1

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

但是,如果您最终想要更具可扩展性,您可以考虑使用GridFS,它在 MongoDB 之上实现了类似存储的文件系统。我gridfs-stream用于类似的东西(上传/下载),它工作正常。

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

于 2013-11-06T19:20:26.203 回答