0

2 つのMongoDBデータソースを使用して、StrongLoop ループバック レプリケーションを試みています。電話データベースにデータを投稿した後、このエラーが表示されます。

TypeError: Function.PersistedModel.replicate で未定義のメソッド 'getChangeModel' を呼び出せません (/home/dchavez/Media/projects/SyncTest/node_modules/loopback/lib/models/persisted-model.js:726:34)

データは Phone コレクションに保存されていますが、エラーのために Repo コレクションに複製されていません。

これらは私のモデル構成です。

電話モデル

{
  "name": "Phone",
  "plural": "Phones",
  "base": "PersistedModel",
  "strict": false,
  "idInjection": true,
  "options": {
    "trackChanges": true
  },
  "properties": {
    "id": {
      "type": "string",
      "id": true
    },
    "num": {
      "type": "string"
    },
    "name": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

レポモデル

{
  "name": "Repo",
  "plural": "Repos",
  "base": "PersistedModel",
  "strict": false,
  "idInjection": true,
  "properties": {
    "name": {
      "type": "string"
    },
    "num": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

私のデータソース構成は次のとおりです。

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "MongoDb": {
    "host": "localhost",
    "port": 27017,
    "database": "PhoneDb",
    "name": "MongoDb",
    "connector": "mongodb"
  }}

The Phone,jsはこちら

module.exports = function(Phone) {
  var loopback = require('../..');
  var Repo = loopback.Repo;
  var conflicts;

  Phone.on('changed', function(obj) {
    replicateSourceToTarget();
    resolveAllConflicts();
  });

  function replicateSourceToTarget() {
    Phone.replicate(0, Repo, {}, function(err, replicationConflicts) {
      conflicts = replicationConflicts;
    });
  }

  function resolveAllConflicts() {
    if (conflicts.length) {
      conflicts.forEach(function(conflict) {
        conflict.resolve();
      });
    }
  }
};
4

0 に答える 0