使用PouchDB插入数据后,我尝试db.getAll()检索所有文档和db.get()单个文档,但没有返回的对象包含我插入的值.
我究竟做错了什么?
new Pouch('idb://test', function(err, db) {
doc = {
test : 'foo',
value : 'bar'
}
db.post(doc, function(err, data) {
if (err) console.error(err)
else console.log(data)
})
db.allDocs(function(err, data) {
if (err) console.error(err)
else console.log(data)
})
})
Run Code Online (Sandbox Code Playgroud) 我想为使用pouchdb + angular-pouchdb的角度应用程序设置单元测试.但当我跑:
karma start karma.conf.js
我收到以下错误:
PhantomJS 1.9.7(Mac OS X)错误
TypeError:'undefined'不是函数(评估'eventEmitter [method] .bind(eventEmitter)')
at .../public/bower_components/pouchdb/dist/pouchdb-nightly.js:5758
角度应用程序在浏览器中运行良好,我所有的karma.conf.js文件都包含相同的依赖项,所以我不明白为什么pouchdb-nightly.js会有一个未定义的函数.我错过了什么?
我想得到包含某个字符串的所有文档,我似乎无法找到它的解决方案..
例如,我有以下文档ID
vw_10
vw_11
bmw_12
vw_13
bmw_14
volvo_15
vw_16
Run Code Online (Sandbox Code Playgroud)
怎么能用字符串vw_"in"得到allDocs呢?
我使用PouchDB离线存储数据,并在应用程序上线时与远程CouchDB数据库同步.如果应用程序在线启动,它可以正常工作:PouchDB pause在连接中断时触发事件,并在连接恢复时继续.这是一个示例代码:
localDB.replicate.to(remoteDB, {
live: true,
retry: true
}).on('paused', function (info) {
// replication was paused, usually because of a lost connection
}).on('change', function (change) {
// yo, something changed!
}).on('active', function (info) {
// replication was resumed
}).on('error', function (err) {
console.log(err);
// totally unhandled error (shouldn't happen)
})
Run Code Online (Sandbox Code Playgroud)
但是当脱机启动应用程序时,会遇到错误(Failed to load resource: net::ERR_ADDRESS_UNREACHABLE)
无法访问远程数据库,PouchDB触发error事件("Database encountered an unknown error"状态500).即使连接回来,复制也行不通.
问题:
即使应用程序是脱机启动的,也有办法使复制工作(例如,pause即使没有访问远程数据库,事件也会先发生)?
更新: 感谢nlawson的回答!我只需要在函数中添加远程数据库创建以使其工作:
function retryReplication() {
var remoteDB = new …Run Code Online (Sandbox Code Playgroud) 我想将PouchDB与CouchDB一起使用,因为我的网络应用程序具有出色的同步和复制功能,但很难找到建模数据的最佳方法,以满足我的需求.
该应用程序允许用户在日历中创建事件,只能与他们选择的用户共享.与该事件关联的用户可以添加注释并对该事件进行更改.
1)据我所知,每个用户都应拥有自己的数据库,以避免访问其他用户数据(如果所有用户数据都存储在一个数据库中).如果是这种情况,如何更新或共享来自不同数据库的文档数据?
2)是否应该使用带有API的sql数据库在另一台服务器上管理用户登录?
任何指导将不胜感激!
斑马
我一直得到这个pouchDB错误,我不知道它是什么.
Error: connect ENFILE 127.0.0.1:5984 - Local (undefined:undefined)
at onError (/Users/thomas/Desktop/rain/node_modules/pouchdb/lib/deps/ajax/ajaxCore.js:53:18)
at Request._callback (/Users/thomas/Desktop/rain/node_modules/pouchdb/lib/deps/ajax/ajaxCore.js:103:14)
at self.callback (/Users/thomas/Desktop/rain/node_modules/request/request.js:198:22)
at emitOne (events.js:77:13)
at Request.emit (events.js:169:7)
at Request.onRequestError (/Users/thomas/Desktop/rain/node_modules/request/request.js:867:8)
at emitOne (events.js:77:13)
at ClientRequest.emit (events.js:169:7)
at Socket.socketErrorListener (_http_client.js:265:9)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at emitErrorNT (net.js:1253:8)
at doNTCallback2 (node.js:450:9)
at process._tickCallback (node.js:364:17)
Run Code Online (Sandbox Code Playgroud) 遇到PouchDB 5.3.0的问题.我的Ionic应用程序中出现以下错误
错误:数据库位置或iosDatabaseLocation值现在在openDatabase调用中是必需的
上面的错误是因为下面的代码行:
> var websql = new PouchDB('websqlpouch', {adapter: 'websql'});
Run Code Online (Sandbox Code Playgroud)
我想在Ionic app中使用SQLite插件.
谢谢你的优点!
我一直在阅读有关pouchdb / couchdb / cloudant的文档和文章。我无法在脑海中创建这种简单的体系结构。我需要帮助!
因此,应用程序上有很多用户。每个用户都有一个单独的数据库(我读的是pouch / couch / cloudant设置中的方法)。
我应该使用pouchdb的Sync api吗?但据我所读,它同步了整个数据库。如何使用此api仅同步中央数据库的一部分。过滤后的复制在这里回答吗?
而且我也不想一次调用两个文档。他可以根据需要访问文档。
用邮袋/邮袋数据库实现此逻辑的正确方法是什么?如果您可以用一些代码解释一下,那就太好了。我只需要基本想法。
在即将发布的CouchDB 2.0和PouchDB-find发行版中,这种问题是否容易解决?
非常感谢!
我的PouchDB同步代码没有产生完整的事件.
我确实得到了更改以及活动和暂停事件(按此顺序),并且数据库最终会同步(在很长时间的等待之后,即使数据不多).
我需要完整的事件,所以我知道何时本地可以使用远程CouchDB数据.
我的代码看起来像这样:
init(localDBName, remoteDBName)
// Initialises the database - Called every time the App starts or the user logs in or registers
// If remoteDBName is false we don't want to sync data to the server
{
// Create a new database or open it if it already exists
this._DB = new PouchDB(localDBName);
this.remote = remoteDBName; // If remoteDBName is false we don't sync data to the server
console.log('Data: init(): PouchDB database opened for localDBName = ' + …Run Code Online (Sandbox Code Playgroud)我试图在从远程CouchDB到本地PouchDB的sync()中使用选择器,以过滤出删除的文档:
selector: {
_deleted: {
$ne: true
}
}
Run Code Online (Sandbox Code Playgroud)
它不会从同步返回任何文档。如何使用选择器仅同步未删除的文档?
pouchdb ×10
couchdb ×7
angularjs ×2
cloudant ×1
indexeddb ×1
javascript ×1
karma-runner ×1
node.js ×1
phantomjs ×1
unit-testing ×1