PouchDB - 新增附件



您可以使用 PouchDB 中的 putAttachment() 方法將二進位制物件附加到文件。

語法

以下是 putAttachment() 的語法。在此方法中,我們必須傳遞文件 ID、附件 ID、MIME 型別以及附件。此方法還接受一個可選的回撥函式。

db.putAttachment( docId, attachmentId, attachment, type, [callback] );

我們可以使用 blob 或 buffer 物件準備附件,其中 blob 用於在瀏覽器中工作,而 buffer 用於在 Node.js 中工作,由於我們在 Node.js 中演示我們的程式,因此我們使用 buffer 物件來準備文件。

示例

以下是在 PouchDB 中使用 putAttachment() 方法,在名為 my_database 的資料庫中建立帶附件的文件的示例。

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

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

//Preparing the attachment 
var my_attachment = new Buffer(['Welcome to tutorialspoint'], {type: 'text/plain'});

//Adding attachment to a document 
db.putAttachment('001', 'att_1.txt', my_attachment, 'text/plain', function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(res+"Attachment added successfully") 
   } 
});

將以上程式碼儲存到名為 Add_Attachment.js 的檔案中。開啟命令提示符並使用 node 執行 JavaScript 檔案,如下所示。

C:\PouchDB_Examples >node Add_Attachment.js

這將建立一個空文件,並向其中新增一個附件,該資料庫名為 my_database,儲存在 PouchDB 中,並顯示以下訊息。

Attachment added successfully

您可以使用以下程式碼驗證附件是否已新增。

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

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

//Reading the Document 
db.get('001',{attachments: true}, function(err, doc) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log(doc); 
   } 
});

將以上程式碼儲存為 read_doc.js 並執行它。執行此程式,您可以看到文件的以下內容。

{ 
   _attachments: { 
      att_1.txt: { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '001',
   _rev: '1-620fd5f41d3328fcbf9ce7504338a51d' 
}

向現有文件新增附件

假設在 PouchDB 中名為 my_database 的資料庫中有一個名為“002”的文件。您可以透過執行 read_doc.js 並將 id 值更改為 002 來獲取其內容,如下所示。

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _id: '002',
   _rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40' 
}

現在,您可以使用其 _rev 值向此文件新增附件。

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

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

//Adding attachment to existing document 
var my_attachment = new Buffer (['Welcome to tutorialspoint'], {type: 'text/plain'});

rev = '1-05ca7b5f3f4762a9fb2d119cd34c8d40'; 
db.putAttachment('002', 'att_1.txt', rev, my_attachment, 'text/plain', function(err, res) { 
   if (err) { 
      return console.log(err); 
   } else { 
      console.log (res + "Attachment added successfully") 
   } 
});

將以上程式碼儲存到名為 Add_Attachment_to_doc.js 的檔案中。開啟命令提示符並使用 node 執行 JavaScript 檔案,如下所示。

C:\PouchDB_Examples >node Add_Attachment_to_doc.js

這將向指定的文件新增一個附件,並顯示以下訊息。

Attachment added successfully

如果您在 read_doc.js 中將 id 值更改為 002 並執行它,您將獲得以下輸出。

{ 
   name: 'Raju',
   age: 23,
   designation: 'Designer',
   _attachments: { 
      att_1: { 
         content_type: 'text/plain',
         digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
         data: 'AA==' 
      } 
   },
   _id: '002',
   _rev: '2-3bb4891b954699bce28346723cc7a709' 
}

向遠端文件新增附件

您甚至可以向儲存在伺服器(CouchDB)上的遠端資料庫中存在的文件新增附件。

為此,您需要傳遞 CouchDB 中資料庫的路徑,而不是資料庫名稱,該資料庫包含要讀取的文件。

示例

假設 CouchDB 伺服器中有一個名為 my_database 的資料庫。然後,如果您使用 URL http://127.0.0.1:5984/_utils/index.html 驗證 CouchDB 中的資料庫列表,您將獲得以下螢幕截圖。

Adding Attachment to a Remote Document

如果您選擇名為 my_database 的資料庫,則可以檢視其內容,如下所示。

Adding Attachment

以下是在儲存在 CouchDB 伺服器上的名為 my_database 的資料庫中,向儲存的文件 001 新增附件的示例。

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

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

//Adding attachment to existing document
var my_attachment = new Buffer (['Welcome to tutorialspoint'], {type: 'text/plain'});

rev = '1-36c34fdcf29a652876219065f9681602';
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")
   }
});

將以上程式碼儲存到名為 Remote_Add_Attachment.js 的檔案中。開啟命令提示符並使用 node 執行 JavaScript 檔案,如下所示。

C:\PouchDB_Examples >node Remote_Add_Attachment.js

這將向指定的文件新增一個附件,並顯示以下訊息。

Attachment added successfully

現在,如果您驗證文件,您可以觀察到向其新增的附件,如下面的螢幕截圖所示。

Adding Attachment Verification
廣告