PouchDB - Ajout d'une pièce jointe
Vous pouvez attacher un objet binaire à un document en utilisant le putAttachment() méthode dans PouchDB.
Syntaxe
Voici la syntaxe du putAttachment(). Pour cette méthode, nous devons transmettre l'identifiant du document, l'identifiant de la pièce jointe, le type MIME avec la pièce jointe. Cette méthode accepte également une fonction de rappel facultative.
db.putAttachment( docId, attachmentId, attachment, type, [callback] );
Nous pouvons préparer la pièce jointe à l'aide d'objets blob ou tampons, où blob est utilisé lors de l'utilisation du navigateur et buffer est utilisé lorsque vous travaillez avec Node.js, puisque nous présentons nos programmes dans Node.js, nous utilisons des objets tampons pour préparer les documents.
Exemple
Voici un exemple de création d'un document avec une pièce jointe, dans une base de données nommée my_database dans PouchDB en utilisant putAttachment() méthode.
//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")
}
});
Enregistrez le code ci-dessus dans un fichier avec un nom Add_Attachment.js. Ouvrez l'invite de commande et exécutez le fichier JavaScript en utilisantnode comme indiqué ci-dessous.
C:\PouchDB_Examples >node Add_Attachment.js
Cela crée un document vide en y ajoutant une pièce jointe, dans la base de données nommée my_database stocké dans PouchDB et affiche le message suivant.
Attachment added successfully
Vous pouvez vérifier si la pièce jointe est ajoutée en lisant le document à l'aide du code suivant.
//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);
}
});
Enregistrez le code ci-dessus sous read_doc.jset exécutez-le. En exécutant ce programme, vous pouvez voir le contenu suivant du document.
{
_attachments: {
att_1.txt: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '001',
_rev: '1-620fd5f41d3328fcbf9ce7504338a51d'
}
Ajout d'une pièce jointe à un document existant
Supposons qu'il y ait un document dans une base de données du nom my_database PouchDB avec id '002». Vous pouvez en obtenir le contenu en exécutant leread_doc.js en changeant la valeur id en 002, comme indiqué ci-dessous.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_id: '002',
_rev: '1-05ca7b5f3f4762a9fb2d119cd34c8d40'
}
Maintenant, vous pouvez ajouter une pièce jointe à ce document en utilisant son _rev valeur.
//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")
}
});
Enregistrez le code ci-dessus dans un fichier avec le nom Add_Attachment_to_doc.js. Ouvrez l'invite de commande et exécutez le fichier JavaScript en utilisantnode comme indiqué ci-dessous.
C:\PouchDB_Examples >node Add_Attachment_to_doc.js
Cela ajoute une pièce jointe au document spécifié affichant le message suivant.
Attachment added successfully
Si vous modifiez la valeur de l'identifiant dans read_doc.js à 002 et exécutez-le, vous obtiendrez la sortie suivante.
{
name: 'Raju',
age: 23,
designation: 'Designer',
_attachments: {
att_1: {
content_type: 'text/plain',
digest: 'md5-k7iFrf4NoInN9jSQT9WfcQ==',
data: 'AA=='
}
},
_id: '002',
_rev: '2-3bb4891b954699bce28346723cc7a709'
}
Ajout d'une pièce jointe à un document distant
Vous pouvez même ajouter une pièce jointe au document existant dans une base de données stockée à distance sur le serveur (CouchDB).
Pour ce faire, au lieu d'un nom de base de données, vous devez transmettre le chemin d'accès à la base de données dans CouchDB, qui contient le document à lire.
Exemple
Supposons qu'il existe une base de données nommée my_databasedans le serveur CouchDB. Ensuite, si vous vérifiez la liste des bases de données dans CouchDB à l'aide de l'URLhttp://127.0.0.1:5984/_utils/index.html vous obtiendrez la capture d'écran suivante.
Et si vous sélectionnez la base de données nommée my_database, vous pouvez afficher son contenu comme indiqué ci-dessous.
Voici un exemple d'ajout d'une pièce jointe au document 001 stocké dans une base de données nommée my_database qui est stocké sur le serveur 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")
}
});
Enregistrez le code ci-dessus dans un fichier avec le nom Remote_Add_Attachment.js. Ouvrez l'invite de commande et exécutez le fichier JavaScript en utilisantnode comme indiqué ci-dessous.
C:\PouchDB_Examples >node Remote_Add_Attachment.js
Cela ajoute une pièce jointe au document spécifié affichant le message suivant.
Attachment added successfully
Maintenant, si vous vérifiez le document, vous pouvez observer la pièce jointe qui y est ajoutée, comme illustré dans la capture d'écran suivante.