db.createIndex 不是函数

osa*_*aye 3 pouchdb ionic3 angular

我正在使用 Ionic 3、Angular 4、Pouchdb、Pouchdb-find Pouchdb 工作正常。我已经通过 npm 安装了 pouchdb 和 pouchdb-find

重现步骤

新产品经理

ionic start testapp
npm install pouchdb
npm install pouchdb-find
ionic serve -l
Run Code Online (Sandbox Code Playgroud)

这是我使用空白 ionic 3 模板的组件简介

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import PouchDB from 'pouchdb';
declare var require: any;


@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {


    PouchDB.plugin(require('pouchdb-find'));

    var db = new PouchDB('pillsalarm3');

    db.createIndex({
      index: {fields: ['type']}
    });
  }           
}
Run Code Online (Sandbox Code Playgroud)

当我运行时出现此错误:

Uncaught (in promise): TypeError: db.createIndex is not a function TypeError: db.createIndex is not a function at new HomePage ( http://localhost:8101/build/main.js:57:12 ) at createClass ( http ://localhost:8101/build/vendor.js:11251:26 ) 在 createDirectiveInstance

小智 6

我遇到了同样的问题,因为它被捆绑为带有默认导出的 ES6 模块。

有了PouchDB.plugin(require('pouchdb-find').default);它。或者 :

import findPlugin from "pouchdb-find";
PouchDB.plugin(findPlugin);
Run Code Online (Sandbox Code Playgroud)

也有效:)