收集挂钩未在第二个应用程序上调用



我有一个用流星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);
  }
});

您的钩子相同。显然,收集挂钩仅支持每个事件的一个钩子。

为什么要两个相同的回调?

最新更新