我想导入并使用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
});
}
答案 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
。不过,请尝试一下,让我知道它是否有效。