
- PouchDB 教程
- PouchDB - 首頁
- PouchDB - 概述
- PouchDB - 環境
- PouchDB - 建立資料庫
- PouchDB - 資料庫資訊
- PouchDB - 刪除資料庫
- PouchDB - 建立文件
- PouchDB - 讀取文件
- PouchDB - 更新文件
- PouchDB - 刪除文件
- PouchDB - 建立批處理
- PouchDB - 獲取批處理
- PouchDB - 更新批處理
- PouchDB - 刪除批處理
- PouchDB - 新增附件
- PouchDB - 獲取附件
- PouchDB - 刪除附件
- PouchDB - 複製
- PouchDB - 同步
- PouchDB - 其他
- PouchDB 有用資源
- PouchDB - 快速指南
- PouchDB - 有用資源
- PouchDB - 討論
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 中的資料庫列表,您將獲得以下螢幕截圖。

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

以下是在儲存在 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
現在,如果您驗證文件,您可以觀察到向其新增的附件,如下面的螢幕截圖所示。
