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();
});
}
}
};