【发布时间】:2015-05-31 02:20:26
【问题描述】:
我正在将 PouchDB 数据库(使用 Angular)与 CouchDB 数据库同步。
当复制正在进行时,代码会发出一个 POST 请求以对 http://127.0.0.1:5984/testdb/_bulk_docs 进行批量更新。
我有一个关于数据库的验证规则来拒绝未经授权的写入,它会生成一个禁止错误。因此,服务器响应 JSON 响应为[{"id":"0951db944e729c981ad3964c22002d55","rev":"8-ccdcb52743cae43c5870113f09f2e25a","error":"forbidden","reason":"Not Authorized"}]
根据to the docs (at the end of the page),上述响应应生成417 Expectation Failed 状态码。但是,它目前会生成一个201 Created 状态码。
由于响应代码不正确,客户端 (PouchDB) 显示为所有记录已同步,但更新未写入服务器 (CouchDB)。
是否有配置选项可以更改此状态码?
参考,我的validate_doc_update函数如下。
function(newDoc, oldDoc, userCtx){
if (!userCtx) throw({forbidden: 'Need a user to update'});
if((userCtx.roles.indexOf('_admin') == -1) && (userCtx.roles.indexOf('backend:manager') == -1)){
throw({forbidden: "Not Authorized"});
}
}
【问题讨论】:
标签: couchdb pouchdb couchdb-futon