PouchDB - dodawanie załącznika
Możesz dołączyć obiekt binarny do dokumentu za pomocą rozszerzenia putAttachment() metoda w PouchDB.
Składnia
Poniżej znajduje się składnia putAttachment(). Do tej metody wraz z załącznikiem musimy przekazać id dokumentu, id załącznika, typ MIME. Ta metoda akceptuje również opcjonalną funkcję zwrotną.
db.putAttachment( docId, attachmentId, attachment, type, [callback] );
Możemy przygotować załącznik za pomocą obiektów typu blob lub buffer, gdzie blob jest używany podczas pracy z przeglądarką i buffer jest używany podczas pracy z Node.jsponieważ demonstrujemy nasze programy w Node.js, używamy obiektów buforowych do przygotowywania dokumentów.
Przykład
Poniżej znajduje się przykład tworzenia dokumentu z załącznikiem w bazie danych o nazwie my_database w PouchDB za pomocą putAttachment() metoda.
//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")
}
});
Zapisz powyższy kod w pliku o nazwie Add_Attachment.js. Otwórz wiersz polecenia i uruchom plik JavaScript za pomocąnode jak pokazano niżej.
C:\PouchDB_Examples >node Add_Attachment.js
Spowoduje to utworzenie pustego dokumentu i dodanie do niego załącznika w bazie danych o nazwie my_database który jest przechowywany w PouchDB i wyświetla następujący komunikat.
Attachment added successfully
Możesz sprawdzić, czy załącznik został dodany, czytając dokument przy użyciu następującego kodu.
//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);
}
});
Zapisz powyższy kod jako read_doc.jsi wykonaj to. Uruchamiając ten program, możesz zobaczyć następującą zawartość dokumentu.
{
_attachments: {
att_1.txt: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '001',
_rev: '1-620fd5f41d3328fcbf9ce7504338a51d'
}
Dodawanie załącznika do istniejącego dokumentu
Załóżmy, że w bazie danych znajduje się dokument o nazwie my_database PouchDB z identyfikatorem002”. Możesz pobrać jego zawartość, wykonując plikread_doc.js zmieniając wartość id na 002, jak pokazano niżej.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_id: '002',
_rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40'
}
Teraz możesz dodać załącznik do tego dokumentu, używając jego _rev wartość.
//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")
}
});
Zapisz powyższy kod w pliku o nazwie Add_Attachment_to_doc.js. Otwórz wiersz polecenia i uruchom plik JavaScript za pomocąnode jak pokazano niżej.
C:\PouchDB_Examples >node Add_Attachment_to_doc.js
Spowoduje to dodanie załącznika do określonego dokumentu wyświetlającego następującą wiadomość.
Attachment added successfully
Jeśli zmienisz wartość id w read_doc.js do 002 i wykonaj go, otrzymasz następujący wynik.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_attachments: {
att_1: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '002',
_rev: '2-3bb4891b954699bce28346723cc7a709'
}
Dodawanie załącznika do zdalnego dokumentu
Możesz nawet dodać załącznik do dokumentu istniejącego w bazie danych, która jest przechowywana zdalnie na serwerze (CouchDB).
W tym celu zamiast nazwy bazy danych należy podać ścieżkę do bazy w CouchDB, w której znajduje się dokument przeznaczony do odczytania.
Przykład
Załóżmy, że istnieje baza danych o nazwie my_databasena serwerze CouchDB. Następnie, jeśli zweryfikujesz listę baz danych w CouchDB za pomocą adresu URLhttp://127.0.0.1:5984/_utils/index.html otrzymasz następujący zrzut ekranu.
A jeśli wybierzesz bazę danych o nazwie my_database, możesz wyświetlić jego zawartość, jak pokazano poniżej.
Poniżej znajduje się przykład dodawania załącznika do dokumentu 001 przechowywane w bazie danych o nazwie my_database który jest przechowywany na serwerze 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")
}
});
Zapisz powyższy kod w pliku o nazwie Remote_Add_Attachment.js. Otwórz wiersz polecenia i uruchom plik JavaScript za pomocąnode jak pokazano niżej.
C:\PouchDB_Examples >node Remote_Add_Attachment.js
Spowoduje to dodanie załącznika do określonego dokumentu wyświetlającego następującą wiadomość.
Attachment added successfully
Teraz, jeśli zweryfikujesz dokument, możesz obserwować załącznik do niego dodany, jak pokazano na poniższym zrzucie ekranu.