【问题标题】:Creating database in PouchDB在 PouchDB 中创建数据库
【发布时间】:2016-12-06 21:59:56
【问题描述】:

我目前正在使用 Microsoft Visual Studio 2015 和 Cordova 进行移动开发。

我尝试浏览 PouchDB 文档并使用他们提供的任何内容

function insertDB() {
    var db = new PouchDB("todos");
    var remoteDB = new PouchDB("http://localhost:5984/todos");

    db.put({
        _id: 'mydoc',
        title: 'Heroes'
    }).then(function (response) {
        // handle response
    }).catch(function (err) {
        console.log(err);
    });

    PouchDB.sync('remoteDB', 'http://localhost:5984/todos');
}

我使用了一个按钮来调用 insertDB() 函数,但出现了错误。

 <button onclick="insertDB()">Click Me!</button>

我不断收到错误消息说 localDB 未定义,PouchDB 未定义。我知道我做错了,因为我对 PouchDB 很陌生,而且我以前从未使用过它。

我可以知道我在哪里做错了吗?

【问题讨论】:

  • 看起来你的代码有错别字 PouchDB.sync('remoteDB', 'http://localhost:5984/todos'); 应该是 PouchDB.sync(db, remoteDb);
  • @twilson63 但是,我仍然收到未定义 PouchDB 的错误。我可以知道为什么吗?
  • .@fiatjaf 你没看到我回答了我自己的答案吗?这是否意味着我尝试自己调试?可以?如果是这样,我无话可说。这不是错字,我的朋友。我按照 PouchDB web 中的指南进行操作,他们给了我这行代码。所以它没有用,我不知道为什么。但我试了又试,所以最后我回答了我自己的问题

标签: javascript sql sqlite cordova pouchdb


【解决方案1】:

未定义意味着您的 pouchdb 包未正确初始化 使用 npm 或 cdn

   const PouchDB = require('pouchdb').default;

一切都是正确的,除了下面一行(你的语法是错误的)

var db = new PouchDB("todos");
var remoteDB = new PouchDB("http://localhost:5984/todos");
PouchDB.sync('remoteDB', 'http://localhost:5984/todos');

修正

var db = new PouchDB("todos");//localdb
var remoteDB = new PouchDB("http://localhost:5984/todos");
PouchDB.sync('db', 'http://localhost:5984/todos');

在 pouchdb 中,当您在下面调用时,db 将创建。如果 db 不存在

如果已经存在,它会更新数据库

 var db = new PouchDB("todos");

所以上面的单行用于使用put函数创建或更新数据 (如果你通过 _id 和 _rev)它会更新你的数据库

如果不通过 _id 和 _rev 则插入新行

导入你的 pouchdb

const PouchDB = require('pouchdb').default;

然后

function insertDB() {
    var db = new PouchDB("todos");
    var remoteDB = new PouchDB("http://localhost:5984/todos");

    db.put({
        _id: 'mydoc',
        title: 'Heroes'
    }).then(function (response) {
        // handle response
    }).catch(function (err) {
        console.log(err);
    });

    PouchDB.sync('db', 'http://localhost:5984/todos');
}

【讨论】:

    【解决方案2】:

    解决方案:

    我意识到我链接了pouchdb的min.js但它找不到文件,因此出现未定义的错误。然后我使用了&lt;script src="//cdn.jsdelivr.net/pouchdb/5.4.5/pouchdb.min.js"&gt;&lt;/script&gt;,问题就解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2015-06-20
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多