ionic 3的allDbs插件

时间:2018-12-19 15:35:43

标签: javascript ionic-framework pouchdb

我想导入并使用Ionic中的allDbs pouchdb插件来列出我的所有数据库表。这是我使用以下命令安装节点模块后执行的操作(npm install pouchdb.all-dbs --save):

import dbsplugin from 'pouchdb-all-dbs';
console.dir(dbsplugin);



 constructor(public navCtrl: NavController,
               public http   : HttpClient)
   {  
        dbsplugin.allDbs().then(function (dbs) {

               }).catch(function (err) {
             // handle err
          });
   }

error with allDbs plugin

1 个答案:

答案 0 :(得分:1)

需要理解的是,PouchDB被设计为由插件增强的中央核心。插件不能单独使用。必须将它们插入PouchDB,然后通过 PouchDB使用。

因此,使用pouchdb-find插件可以做到:

  import PouchDB from 'pouchdb';
  import finder from 'pouchdb-find';

  PouchDB.plugin(finder);

  const dbLocal = new PouchDB('myDb');

  dbLocal.find({ selector: { name: 'mario' } })
    .then(rslt) => { /* do stuff */ });

allDbs的情况下,在单个数据库上运行它是没有意义的,因为必须对pouchdb-find进行操作,因此allDbs是一个类方法,而不是实例方法。

我相信,这意味着您可以跳过实例化,直接像这样从Pouch调用它:

  import PouchDB from 'pouchdb';
  import finder from 'pouchdb-find';
  import dbsplugin from 'pouchdb-all-dbs';

  PouchDB.plugin(finder);
  PouchDB.plugin(dbsplugin);

  PouchDB.allDbs().then((dbs) => {
    // dbs is an array of strings, e.g. ['mydb1', 'mydb2']
  }).catch(function (err) {
    // handle err
  });

我之所以说“我相信”,是因为我没有使用过pouchdb-all-dbs。不过,请尝试一下,让我知道它是否有效。