PouchDB - Thêm tệp đính kèm
Bạn có thể đính kèm một đối tượng nhị phân vào tài liệu bằng cách sử dụng putAttachment() phương thức trong PouchDB.
Cú pháp
Sau đây là cú pháp của putAttachment(). Đối với phương pháp này, chúng ta phải chuyển id tài liệu, id tệp đính kèm, kiểu MIME cùng với tệp đính kèm. Phương thức này cũng chấp nhận một hàm gọi lại tùy chọn.
db.putAttachment( docId, attachmentId, attachment, type, [callback] );
Chúng tôi có thể chuẩn bị tệp đính kèm bằng cách sử dụng các đối tượng blob hoặc bộ đệm, trong đó blob được sử dụng khi làm việc với trình duyệt và buffer được sử dụng khi làm việc với Node.js, vì chúng tôi đang trình diễn các chương trình của mình trong Node.js, chúng tôi sử dụng các đối tượng đệm để chuẩn bị tài liệu.
Thí dụ
Dưới đây là một ví dụ về cách tạo tài liệu có tệp đính kèm, trong cơ sở dữ liệu có tên my_database trong PouchDB bằng cách sử dụng putAttachment() phương pháp.
//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")
}
});
Lưu đoạn mã trên vào một tệp có tên Add_Attachment.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.
C:\PouchDB_Examples >node Add_Attachment.js
Điều này tạo ra một tài liệu trống thêm một phần đính kèm vào nó, trong cơ sở dữ liệu có tên my_database được lưu trữ trong PouchDB và hiển thị thông báo sau.
Attachment added successfully
Bạn có thể xác minh xem phần đính kèm đã được thêm hay chưa bằng cách đọc tài liệu bằng đoạn mã sau.
//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);
}
});
Lưu mã trên dưới dạng read_doc.jsvà thực hiện nó. Khi thực hiện chương trình này, bạn có thể xem nội dung sau của tài liệu.
{
_attachments: {
att_1.txt: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '001',
_rev: '1-620fd5f41d3328fcbf9ce7504338a51d'
}
Thêm phần đính kèm vào tài liệu hiện có
Giả sử, có một tài liệu trong cơ sở dữ liệu có tên my_database PouchDB với id '002'. Bạn có thể lấy nội dung của nó bằng cách thực thiread_doc.js bằng cách thay đổi giá trị id thành 002, như hình dưới đây.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_id: '002',
_rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40'
}
Bây giờ, bạn có thể thêm tệp đính kèm vào tài liệu này bằng cách sử dụng _rev giá trị.
//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")
}
});
Lưu đoạn mã trên vào một tệp có tên Add_Attachment_to_doc.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.
C:\PouchDB_Examples >node Add_Attachment_to_doc.js
Thao tác này thêm phần đính kèm vào tài liệu được chỉ định hiển thị thông báo sau.
Attachment added successfully
Nếu bạn thay đổi giá trị id trong read_doc.js đến 002 và thực thi nó, bạn sẽ nhận được kết quả sau.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_attachments: {
att_1: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '002',
_rev: '2-3bb4891b954699bce28346723cc7a709'
}
Thêm phần đính kèm vào tài liệu từ xa
Bạn thậm chí có thể thêm phần đính kèm vào tài liệu hiện có trong cơ sở dữ liệu được lưu trữ từ xa trên máy chủ (CouchDB).
Để làm như vậy, thay vì tên cơ sở dữ liệu, bạn cần phải chuyển đường dẫn đến cơ sở dữ liệu trong CouchDB, chứa tài liệu sẽ được đọc.
Thí dụ
Giả sử có một cơ sở dữ liệu có tên my_databasetrong máy chủ CouchDB. Sau đó, nếu bạn xác minh danh sách cơ sở dữ liệu trong CouchDB bằng URLhttp://127.0.0.1:5984/_utils/index.html bạn sẽ nhận được ảnh chụp màn hình sau.
Và nếu bạn chọn cơ sở dữ liệu có tên my_database, bạn có thể xem nội dung của nó như hình dưới đây.
Sau đây là một ví dụ về cách thêm tệp đính kèm vào tài liệu 001 được lưu trữ trong cơ sở dữ liệu có tên my_database được lưu trữ trong máy chủ CouchDB.
//Requiring the package
var PouchDB = require('PouchDB');
//Creating the database object
var db = new PouchDB('http://localhost: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")
}
});
Lưu đoạn mã trên vào một tệp có tên Remote_Add_Attachment.js. Mở dấu nhắc lệnh và thực thi tệp JavaScript bằngnode như hình bên dưới.
C:\PouchDB_Examples >node Remote_Add_Attachment.js
Thao tác này thêm phần đính kèm vào tài liệu được chỉ định hiển thị thông báo sau.
Attachment added successfully
Bây giờ, nếu bạn xác minh tài liệu, bạn có thể quan sát tệp đính kèm được thêm vào nó như được hiển thị trong ảnh chụp màn hình sau.