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.