您好,我一直在尝试在ouchdb中实现设计文档update_handler,以便在pouchdb数据同步并存储在ouchdb中时使用。 目的是验证中央CouchDB中的数据存储。对于安全验证和其他功能实现,这是必需的。我尝试使用pouchdb-update插件,但是可以得到一种具体的实现方法,是下面的设计文档和当数据同步到沙发上时将在沙发上调用更新功能的代码。
{
"_id": "_design/secure",
"_rev": "27-d7fbdd8ea925df711d2d4329dbb032c2",
"language": "javascript",
"updates": {
"update": "function(doc,req){if(!doc)return[null,'Doc doesnt exists! Please Create a new
document']doc.secured = doc.secured == false?true:false;return [doc,'Ok,Secured']}"
}
}
我想在将文档存储在ouchdb中后调用它来修改我的文档。这些文档将从在cordova应用程序后台运行的pouchdb进行同步。这是我尝试实现的,包括POUCHDB-UPDATE插件。
var argv = require('minimist')(process.argv.slice(2));
var logLocation=argv.pouchlog;
var controlFileHandler=argv.controlfh;
var express = require('express')
var app = express()
var PouchDB = require('pouchdb').plugin('pouchdb-update');
let InMemPouchDB = PouchDB.defaults({db: require("memdown"), migrate: false})
app.use('', require('express-pouchdb')(InMemPouchDB,
{mode:'minimumForPouchDB',logPath:logLocation}))
app.listen(3005)
var db = new InMemPouchDB('todos',{revs_limits: 1});
var remoteCouch = 'http://127.0.0.1:5984/todos';
db.changes({live: true}).on('change', function(){
db.sync(remoteCouch,{live:true,retry:true}).on('active',function(){
db.update('_design/secure', function(res){
console.log("Data Secured");
console.log(res);
})
})
但是它不起作用,我在调用沙发上的更新功能时遇到问题,请大家帮我实施。目的是仅在将数据存储在Couchdb中时触发update_handler函数(并指示多个pouchdb之间的数据同步不安全,除非将其存储在ouchdb中)。请帮助我解决问题,或者如果有更简单的方法可以解决此问题,我们将不胜感激。