Обновление обработчиков для couchdb для вызова из pouchbd - PullRequest
0 голосов
/ 14 ноября 2018

Информация

  • Среда: гибридное приложение
  • Платформа: Android
  • Адаптер: IndexedDB
  • Сервер: CouchDB & PouchDB Сервер

Здравствуйте, я пытался реализовать документ разработки update_handler в couchdb, который будет использоваться, когда данные pouchdb синхронизируются и сохраняются в couchdb.Цель состоит в том, чтобы проверить хранение данных в центральной CouchDB.Это необходимо для проверки безопасности и реализации других функций.Я пытался использовать плагин pouchdb-update, но конкретный способ достижения этого можно найти ниже, это документ разработки и код, который будет вызывать функцию обновлений на couchdb при синхронизации данных с couchdb.

  {
     "_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']}"
            }
   }

И я хочу вызвать его, чтобы модифицировать мои документы, как только они будут сохранены в couchdb.Документы будут синхронизироваться с pouchdb, который работает на фоне приложения Cordova.Это то, что я пытался реализовать, включая плагин 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 только тогда, когда данные хранятся в Couchdb (и указывает, что синхронизация данных между несколькими pouchdb небезопасна, если она не хранится в couchdb).Пожалуйста, помогите мне решить проблему, или, если есть более простой способ добиться этого, любая помощь будет высоко оценена.

...