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