如何从pouchdb中检索json数据

时间:2017-02-05 18:25:41

标签: ionic-framework pouchdb

我试图从 pouchdb 返回特定的Json数据,如果数据存在,我想显示一些活动。但不知怎的,我无法这样做。 我的代码

var PouchDB = require('PouchDB'); 
//Creating the database object 
var db = new PouchDB('my_database');
 //Reading the contents of a Document 
var res = db.get('001', function(err, doc)
  if (err)
 {
 return console.log(err);
 } 
else
 { 
var data = JSON.stringify(res)
return console.log(doc);
 } });

我得到的结果是:{} emptyset

1 个答案:

答案 0 :(得分:0)

您的示例中的问题是您正在使用带有回调和Promise的PouchDB。您需要使用回调或承诺。这是你应该使用的片段。我用回调和承诺做了一个例子。

Promise让您的工作流程变得更加清洁。

此外,由于安全原因,该示例不会直接在StackOverflow中运行。这是一个外部工作示例:http://jsbin.com/javipoguqe/1/edit?js,console

//Creating the database object 
var db = new PouchDB('my_database');

//Callback example 

db.get('001', function(err, doc) {
  if (err) {
    return console.log(err);
  } else {
    var data = JSON.stringify(res)
    return console.log(doc);
  }
});

//Promise example

var promise = db.get('001');
promise.then(function(res) {
  console.log(JSON.stringify(res));
}).catch(function(err) {
  console.log(JSON.stringify(err));
});


//Example to show advantages of promises

db.put({
  '_id': "001",
  name: "newdoc"
}).then(function(res) {
  return db.get('001');
}).then(function(res) {
  console.log("Document was added and retrieved");
}).catch(function(err) {
  console.log(JSON.stringify(err));
});
<script src="https://cdn.jsdelivr.net/pouchdb/latest/pouchdb.min.js"></script>