我有一个集成了PouchDB的AngularJS应用程序。我想在PouchDB中添加一个文档,但从文档(下面)中不太清楚:
db.putAttachment(docId, attachmentId, rev, doc, type, [callback]);
将二进制对象附加到文档。大多数PouchDB的API交易 使用JSON,但如果您正在处理大型二进制数据(例如 PNGs),如果您只是简单,可能会导致性能或存储损失 将它们包含为base64或hex编码的字符串。在这些情况下,你 可以将二进制数据存储为附件。有关详细信息,请参阅 关于附件的CouchDB文档。
示例用法:
var doc = new Blob(["It's a God awful small affair"]);
db.putAttachment('a', 'text', rev, doc, 'text/plain', function(err, res) {})
在Node中,您必须使用Buffer而不是Blob:
var doc = new Buffer("It's a God awful small affair");
在我的应用程序中,我达到了我的目的:
var file = document.getElementById('file');
现在,如何使用Buffer将我的文件添加到数据库?另外,是否可以自动生成有效的docID,attachementID和rev?什么是MS办公文档的类型?
谢谢!
答案 0 :(得分:1)
Blob肯定会让人感到困惑。对于PouchDB,我们编写了一个Blob shim library,欢迎您使用,而README还包含一些示例以帮助您入门。基本上你只需要传递blob数据和内容类型。
作为替代方案,您始终只需update()
文档,并将附件作为base64编码的字符串添加到_attachments
对象中,我通常会觉得这很容易。
编辑:哎呀,没看到你在Node.js上。查看this code,了解我们如何在PouchDB单元测试中制作缓冲区/ Blob。