我有一个集成了AngularJS的PouchDB应用程序。我想在PouchDB中添加一个文档,但从文档中(如下)看不太清楚:
db.putAttachment(docId, attachmentId, rev, doc, type, [callback]);将二进制对象附加到文档。PouchDB的大多数API都处理JSON,但是如果您处理的是大型二进制数据(如PNG),如果只将它们作为base64 64或十六进制编码的字符串,则可能会导致性能或存储损失。在这些情况下,您可以将二进制数据存储为附件。有关详细信息,请参阅附件上的CouchDB文档。 示例用法:
var doc = new Blob(["It's a God awful small affair"]);
db.putAttachment('a', 'text', rev, doc, 'text/plain', function(err, res) {})在Node中,必须使用缓冲区而不是Blob:
var doc = new Buffer("It's a God awful small affair");在我的应用程序中,我已经达到了这样的程度:
var file = document.getElementById('file');现在,如何使用缓冲区将我的文件添加到DB?此外,是否可以自动生成有效的docID、attachementID和rev?微软办公文档的类型是什么?
谢谢!
发布于 2014-05-06 18:35:30
使用Blobs肯定会让人感到困惑。对于PouchDB,我们编写了一个欢迎您使用的Blob shim库,自述自述也包含了一些示例来帮助您入门。基本上,您只需要传递blob数据和内容类型。
作为另一种选择,您可以始终只需update()文档,并将附件作为base64 64编码的字符串添加到_attachments对象中,我常常觉得这更容易。
编辑:哇哦,没看到你在Node.js上。查看这段代码,了解如何在PouchDB单元测试中生成缓冲区/Blobs。
https://stackoverflow.com/questions/23495878
复制相似问题