我有一个用流星1.4编写的应用程序,并在端口3000(称为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);
}
,在B中我们有:
collections.notes.after.update(function(userId, doc, fieldNames, modifier, options) {
console.log("notes updated in B hook");
console.log(doc);
}
,但这只是log notes updated in A hook
。
如何修复它?
收集钩仅在进行更改的应用程序中运行。您的应用B挂钩不会在AppA。
的更改上运行如果您想根据更改基础的MongoDB数据在应用B中执行某些操作,那么您想观察该集合:
collections.notes.find().observe({
changed(newDocument, oldDocument){
console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
}
});
您的钩子相同。显然,收集挂钩仅支持每个事件的一个钩子。
为什么要两个相同的回调?