Крюк коллекции не вызывается во втором приложении
У меня есть приложение, написанное на Meteor 1.4, и я запускаю его на порту 3000 (называемом A) и знаю, что хочу использовать базу данных приложения A в другом приложении (называемом B). В консоли B я установил MONGO_URL так:
export MONGO_URL=mongodb://localhost:3001/meteor
А затем запустите его на порту 5000. У меня есть несколько хуков сбора в приложении A, а также хуков сбора в приложении B, но хуки только в приложении A.
Например, в А мы имеем:
collections.notes.after.update(function(userId, doc, fieldNames, modifier, options) {
console.log("notes updated in A hook");
console.log(doc);
}
И в Б мы имеем:
collections.notes.after.update(function(userId, doc, fieldNames, modifier, options) {
console.log("notes updated in B hook");
console.log(doc);
}
Но это только журнал notes updated in A hook
,
Как это исправить?
2 ответа
Хук сбора выполняется только в приложении, в котором было сделано изменение. Хук вашего приложения B не запускается при изменении приложения A.
Если вы хотите сделать что-то в приложении B на основе изменения данных MongoDB, то вы хотите наблюдать за этой коллекцией:
collections.notes.find().observe({
changed(newDocument, oldDocument){
console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
}
});
Ваши крючки идентичны. Очевидно, что коллекционные хуки поддерживают только один хук на событие.
Почему вы хотите два идентичных обратных вызовов?