Pouchdb 简明教程

PouchDB - Retrieving Attachment

你可以使用 getAttachment() 方法从 PouchDB 检索附件。此方法永远返回 blob 或缓冲区对象。

Syntax

以下是 getAttachment() 的语法。我们必须向此方法传递文档 ID 和附件 ID。此方法还接受可选的回调函数。

db.getAttachment( docId, attachmentId, [callback] );

Example

以下是使用 getAttachment() 方法检索存储在 PouchDB 中的文档附件的示例。使用此代码,我们试图从文档 001 检索附件 att_1.txt

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('my_database');

//Retrieving an attachment from a document
db.getAttachment('001', 'att_1.txt', function(err, blob_buffer) {
   if (err) {
      return console.log(err);
   } else {
      console.log(blob_buffer);
   }
});

将上述代码保存在名为 Retrieve_Attachment.js 的文件中。打开命令提示符并使用 node 执行 JavaScript 文件,如下所示。

C:\PouchDB_Examples >node Retrieve_Attachment.js

这会检索文档的附件,并如下所示显示在控制台中。

<Buffer 00>

Retrieving Attachment from a Remote Document

你还可以检索存在于存储在服务器上的(CouchDB)数据库中的文档附件。

要执行此操作,您需要传入 CouchDB 中的数据库路径而不是数据库名称,该路径包含要读取的文档。

Example

假设 CouchDB 服务器中有一个名为 my_database 的数据库。然后,如果您使用 URL http://127.0.0.1:5984/_utils/index.html 验证 CouchDB 中的数据库列表,您将获得以下屏幕截图。

retrieving attachment from remote database

如果你选择名为 my_database 的数据库,你可以查看其内容,如下所示。

retrieving attachment

假设此文档中有一个附件,如下所示。

attachment

以下是针对存储在名为 my_database 的数据库中的文档 001 检索附件的示例,此数据库存储在 CouchDB 服务器中。

//Requiring the package
var PouchDB = require('PouchDB');

//Creating the database object
var db = new PouchDB('http://localhost:5984/my_database');

//Retrieving an attachment from a document
db.getAttachment('001', 'att_1.txt', function(err, blob_buffer) {
   if (err) {
      return console.log(err);
   } else {
      console.log(blob_buffer);
   }
});

将上述代码保存在名为 Remote_Retrieve_Attachment.js 的文件中。打开命令提示符并使用 node 执行 JavaScript 文件,如下所示。

C:\PouchDB_Examples >node Remote_Retrieve_Attachment.js

这会检索文档附件,并如下所示显示在控制台中。

<Buffer 00>