【发布时间】:2016-07-26 19:04:42
【问题描述】:
我的 pouchDB 代码尝试更新数据库中的文档时发生了奇怪的冲突
代码:
this.addToExistingUser = function (docId, key, value) {
usersDatabaseRemote
.get(docId)
.then(function (doc) {
doc[key] = value;
return usersDatabaseRemote.put(doc, docId, doc._rev);
})
.then(function () {
console.log('added field: ' + key + ' to doc ' + docId);
})
.catch(function (err) {
console.log("error from addToExistingUser:");
console.log(JSON.stringify(err));
});
}
在哪里:
.factory('usersDatabaseRemote', [
'pouchDB',
function (pouchDB) {
'use strict';
var usersDatabaseRemote = pouchDB('https://id:pwd@id.cloudant.com/boardl_users');
return usersDatabaseRemote;
}
])
导致:
{"status":409,"name":"conflict","message":"Document update conflict","error":true,"reason":"Document update conflict."}
但正如您从代码中看到的那样,我从远程文档中获取了修订号 rev,所以我不明白为什么会有问题。
谢谢
【问题讨论】:
-
您是否连续两次调用函数“addToExistingUser”?冲突可能是由于对文档的异步调用而发生的。
-
准确!你是对的@AlexisCôté。
标签: angularjs ionic-framework couchdb pouchdb