jam*_*jam 5 image mongodb node.js
我知道Mongodb可以通过两种方式存储图像.
为简单起见,因为我计划服务器的图像很小,我会选择选项1.
要将图像提供给浏览器,我使用的是nodejs.
我的问题是这有多难?如何将二进制数据转换为浏览器可以理解的实际图像?涉及什么类型的编码?
你能指点我在网上其他地方的教程/例子吗?
顺便说一下,我知道这可能不是出于性能原因的好主意,我计划在服务后缓存图像.我只想避免文件系统全部在一起.
我强烈建议不要提供来自MongoDB的图像.
最好将它们存储在静态文件存储(S3)上,并可能在MongoDB中保留路径.
您可能会使用base64编码将文件放入mongodb:http://www.greywyvern.com/code/php/binary2base64/(或只是base64 shell实用程序).
如果您只是使用常规文档,那么性能成本相对较低(只要缓存很好).如果您使用的是具有GridFS和常规文档的混合数据库,那么您的服务器上将需要大量RAM - GridFS查询将与文档查询完全不同.
转换图像可能会像这样工作:
var base64Data = imagefile.replace(/^data:image\/png;base64,/,""),
var dataBuffer = new Buffer(base64Data, 'base64');
// below line won't actually work but it's something along the lines of what you want:
db.foo.insert({magic: 123, etc... img: dataBuffer.toString()})
Run Code Online (Sandbox Code Playgroud)