2016-09-16 3 views
0

Je suis débutant à couchbase lite et j'ai besoin de votre aide. Je veux stocker les données et l'accès hors ligne et affiché dans l'application phonegap. Donc je choisis la lite couchbase.Récupérer le document entier à partir de couchbase lite dans phonegap

Utiliser le code exemple pour faire des step.There sont

  • Ajouter le cadre lite Couchbase.
  • Exécutez-le dans l'application phonegap.
  • Obtenez l'URL locale couchbase lite.
  • Créer une base de données.
  • Connexion à la base de données pour insérer, mettre à jour et supprimer le document.

    Mais mon problème récupère le document entier à partir de la base de données. En même temps, j'ai lu la méthode de carte pour récupérer le document. mais je ne suis pas capable de comprendre.

    Sample app Phonegap: Here the link

    Ci-dessous je joins le code de travail, testez-le dans la plate-forme ios

    var coax = require("coax"); 
    console.log(coax); 
    var appDbName = "couchdb"; 
    document.addEventListener('deviceready', onDeviceReady, false); 
    
    // deviceready Event Handler 
    // 
    // The scope of 'this' is the event. In order to call the 'receivedEvent' 
    // function, we must explicitly call 'app.receivedEvent(...);' 
    
    function onDeviceReady() { 
    receivedEvent('deviceready'); 
    setupConfig(function(err){ 
          if (err) { 
          alert(err) 
          return console.log("err "+JSON.stringify(err)) 
          } 
          }); 
    
    } 
    
    function logMessage(message) { 
    var p = document.createElement("p"); 
    p.innerHTML = message; 
    document.body.getElementsByClassName('app')[0].appendChild(p); 
    console.log(message); 
    } 
    
    // Update DOM on a Received Event 
    
    function receivedEvent(id) { 
    var parentElement = document.getElementById(id); 
    var listeningElement = parentElement.querySelector('.listening'); 
    var receivedElement = parentElement.querySelector('.received'); 
    
    listeningElement.setAttribute('style', 'display:none;'); 
    receivedElement.setAttribute('style', 'display:block;'); 
    
    console.log('Received Event: ' + id); 
    } 
    
    
    
    function setupConfig(done) { 
    // get CBL url 
    if (!window.cblite) { 
        return done('Couchbase Lite not installed') 
    } 
    cblite.getURL(function(err, url) { 
           console.log("getURL: " + JSON.stringify([err, url])); 
    
           window.server = coax(url); 
    
           var db = coax([url, appDbName]); 
    
           setupDb(db, function(err, info){ 
             console.log("getDB"+db); 
    
             if (err) { 
             return alert(JSON.stringify("GetDB:"+ err)); 
             } 
    
             db.get("_local/user", function(err, doc) { 
             if (err) { 
    
              if(err.status == 404) { 
    
    
              var docV = { "key" : "value" }; 
              db.put("_local/user", docV, function(err, ok) { 
              //HERE I AM INSERT THE DATA 
              return alert(JSON.stringify("Success:" + ok)); 
              }); 
    
    
              } 
              else { 
              return alert(JSON.stringify(err)); 
              } 
    
             } 
             else { 
              console.log("Document : "+doc._id); 
              // HERE I AM UPDATE AND DELETE THE DATA 
              doc._deleted =true; 
              db.put("_local/user", doc, function(error, ok) { 
    
              }); 
    
    
              } 
    
             }); 
    
    
             }); 
    
           }); 
    
    } 
    
        function setupDb(db, cb) { 
         db.get(function(err, res, body){ 
         console.log(JSON.stringify(["before create db put", err, res, body])) 
         db.put(function(err, res, body){ 
           db.get(cb); 
           }) 
         }) 
    } 
    

Répondre

0

Vous obtenez le doc passé en tant que JS var. Voici un petit extrait qui montre ce (de l'exemple d'application que vous avez lié):

function toggleChecked(id) { 
    log("toggle", id) 
    config.db.get(id, function(err, doc){ 
     doc.checked = !doc.checked 
     doc.updated_at = new Date() 
     config.db.put(id, doc, function(){}) 
    }) 
} 

Propriétés dans le doc sont disponibles et mis à jour directement.