PouchDB添加附件实例图解

本文概述

  • 添加附件示例
  • 验证
  • 将附件添加到现有文档
  • 验证
  • 将附件添加到远程数据库
  • 验证
putAttachment()方法用于将二进制对象添加到PouchDB中的文档。要使用此方法, 你必须将文档ID, 附件ID, MIME类型以及附件一起传递。此方法还接受可选的回调函数。
句法:
db.putAttachment( doc_Id, attachment_Id, attachment, type, [callback] );

Blob或缓冲区对象用于准备文档附件。使用Blob时使用浏览器, 使用缓冲区时使用Node.js。
在这里, 我们使用Node.js控制台, 因此我们将使用缓冲区对象。
添加附件示例 让我们以一个示例为例, 该文件在新创建的数据库” New_Database” 中创建带有附件的文档。
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('New_Database'); //Preparing the attachment var my_attachment = new Buffer(['Hello srcmini......'], {type:'text/plain'}); //Adding attachment to a document db.putAttachment('001', 'attachment1.txt', my_attachment, 'text/plain', function(err, res) { if (err) { return console.log(err); } else { console.log(res+"Attachment added successfully") } });

【PouchDB添加附件实例图解】将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Add_Attachment.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Add_Attachment.js

输出
PouchDB添加附件实例图解

文章图片
上面的示例将创建一个空文档, 向存储在PouchDB中的名为” New_Database” 的数据库添加附件。
验证 使用以下代码来验证是否添加了附件。
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('New_Database'); //Reading the Document db.get('001', {attachments: true}, function(err, doc) { if (err) { return console.log(err); } else { console.log(doc); } });

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Read_Doc.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Read_Doc.js

输出
PouchDB添加附件实例图解

文章图片
将附件添加到现有文档 我们在数据库” Last_Database” 中有一个ID为” 002″ 的文档。你可以看到文档的值:
{ name: 'Aryan', age: 21, designation: 'Teacher', _id: '002', _rev: '1-06272bacc14146d68d8ee0c36dfa0cb9' }

PouchDB添加附件实例图解

文章图片
现在, 使用其_rev值向该文档添加附件。
例:
//Requiring the package var PouchDB = require('PouchDB'); //Creating the database object var db = new PouchDB('Last_Database'); //Adding attachment to existing document var my_attachment = new Buffer (['Hello srcmini....'], {type: 'text/plain'}); rev = '1-06272bacc14146d68d8ee0c36dfa0cb9'; db.putAttachment('002', 'attachment1.txt', rev, my_attachment, 'text/plain', function(err, res) { if (err) { return console.log(err); } else { console.log (res + "Attachment added successfully") } });

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Add_Attachment2.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Add_Attachment2.js

输出
PouchDB添加附件实例图解

文章图片
验证 你可以使用read命令验证添加的附件:
PouchDB添加附件实例图解

文章图片
{ name: 'Aryan', age: 21, designation: 'Teacher', _attachments:{ 'attachment1.txt':{ content_type: 'text/plain', revpos: 2, digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==', data: 'AA==' } }, _id: '002', _rev: '2-388510d44393457cb06764dd89542ef3' }

将附件添加到远程数据库 你还可以将附件添加到远程存储的服务器(CouchDB)。你只需要将路径传递到CouchDB中的数据库, 该数据库包含你要在其中添加附件的文档。
例子
我们在CouchDB服务器上存储了一个数据库名称” employees” 。
PouchDB添加附件实例图解

文章图片
数据库中有一个文档, 标识为001。
PouchDB添加附件实例图解

文章图片
将附件添加到文档001中, 该文档存储在CouchDB服务器中存储的名为” employees” 的数据库中。
//Requiring the packagevar PouchDB = require('PouchDB'); //Creating the database objectvar db = new PouchDB('http://localhost:5984/employees'); //Adding attachment to existing documentvar my_attachment = new Buffer (['Hello srcmini...'], {type: 'text/plain'}); rev = '9-92dc28669aea902edc4cf0d69c0eaebb'; db.putAttachment('001', 'att_1.txt', rev, my_attachment, 'text/plain', function(err, res) {if (err) {return console.log(err); } else {console.log (res+ "Attachment added successfully")}});

将以上代码保存在名为” PouchDB_Examples” 的文件夹中的名为” Add_Remote_Attachment.js” 的文件中。打开命令提示符, 并使用node执行JavaScript文件:
node Add_Remote_Attachment.js

输出
PouchDB添加附件实例图解

文章图片
验证 转到CouchDB服务器, 你可以看到附件已随文档一起添加。
PouchDB添加附件实例图解

文章图片

    推荐阅读