PouchDB - Aggiunta di allegato
È possibile allegare un oggetto binario a un documento utilizzando l'estensione putAttachment() metodo in PouchDB.
Sintassi
Di seguito è riportata la sintassi di putAttachment(). A questo metodo, dobbiamo passare l'ID del documento, l'ID dell'allegato, il tipo MIME insieme all'allegato. Questo metodo accetta anche una funzione di callback opzionale.
db.putAttachment( docId, attachmentId, attachment, type, [callback] );
Possiamo preparare l'allegato usando oggetti blob o buffer, dove blob viene utilizzato mentre si lavora con il browser e buffer viene utilizzato mentre si lavora con Node.js, poiché stiamo dimostrando i nostri programmi in Node.js, utilizziamo oggetti buffer per preparare i documenti.
Esempio
Di seguito è riportato un esempio di creazione di un documento con un allegato, all'interno di un database denominato my_database in PouchDB utilizzando putAttachment() metodo.
//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")
}
});
Salva il codice sopra in un file con nome Add_Attachment.js. Apri il prompt dei comandi ed esegui il file JavaScript utilizzandonode come mostrato di seguito.
C:\PouchDB_Examples >node Add_Attachment.js
Questo crea un documento vuoto aggiungendovi un allegato, nel database denominato my_database che è memorizzato in PouchDB e visualizza il seguente messaggio.
Attachment added successfully
È possibile verificare se l'allegato viene aggiunto leggendo il documento utilizzando il codice seguente.
//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);
}
});
Salva il codice sopra come read_doc.jsed eseguirlo. Eseguendo questo programma, puoi vedere i seguenti contenuti del documento.
{
_attachments: {
att_1.txt: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '001',
_rev: '1-620fd5f41d3328fcbf9ce7504338a51d'
}
Aggiunta di allegati a un documento esistente
Supponiamo che ci sia un documento in un database con il nome my_database PouchDB con ID '002'. Puoi ottenerne il contenuto eseguendo il fileread_doc.js modificando il valore id in 002, come mostrato di seguito.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_id: '002',
_rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40'
}
Ora puoi aggiungere un allegato a questo documento usando il suo _rev valore.
//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")
}
});
Salva il codice sopra in un file con il nome Add_Attachment_to_doc.js. Apri il prompt dei comandi ed esegui il file JavaScript utilizzandonode come mostrato di seguito.
C:\PouchDB_Examples >node Add_Attachment_to_doc.js
Ciò aggiunge un allegato al documento specificato che visualizza il seguente messaggio.
Attachment added successfully
Se modifichi il valore id in read_doc.js per 002 ed eseguendolo, otterrai il seguente output.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_attachments: {
att_1: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '002',
_rev: '2-3bb4891b954699bce28346723cc7a709'
}
Aggiunta di allegati a un documento remoto
È anche possibile aggiungere un allegato al documento esistente in un database archiviato in remoto sul server (CouchDB).
Per fare ciò, invece del nome di un database, è necessario passare il percorso al database in CouchDB, che contiene il documento da leggere.
Esempio
Supponiamo che ci sia un database denominato my_databasenel server CouchDB. Quindi, se verifichi l'elenco dei database in CouchDB utilizzando l'URLhttp://127.0.0.1:5984/_utils/index.html otterrai il seguente screenshot.
E se selezioni il database denominato my_database, puoi visualizzarne il contenuto come mostrato di seguito.
Di seguito è riportato un esempio di aggiunta di un allegato al documento 001 archiviato in un database denominato my_database che è memorizzato nel server 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")
}
});
Salva il codice sopra in un file con il nome Remote_Add_Attachment.js. Apri il prompt dei comandi ed esegui il file JavaScript utilizzandonode come mostrato di seguito.
C:\PouchDB_Examples >node Remote_Add_Attachment.js
Ciò aggiunge un allegato al documento specificato che visualizza il seguente messaggio.
Attachment added successfully
Ora, se verifichi il documento, puoi osservare l'allegato aggiunto ad esso come mostrato nello screenshot seguente.