0

我有一个用 Meteor 1.4 编写的应用程序并在端口 3000(称为 A)上运行它知道我想在另一个应用程序(称为 B)中使用 A 应用程序数据库。在 B 控制台中,我像这样设置 MONGO_URL:

export MONGO_URL=mongodb://localhost:3001/meteor

然后在端口 5000 上运行它。我在应用程序 A 上有一些收集钩子,在应用程序 B 上也有一些收集钩子,但钩子只在应用程序 A 中调用。

例如在 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

如何解决?

4

2 回答 2

1

集合挂钩仅在进行更改的应用程序中运行。您的应用 B 挂钩不会在应用 A 的更改上运行。

如果您想根据底层 MongoDB 数据的变化在应用 B 中做某事,那么您需要观察该集合:

collections.notes.find().observe({
  changed(newDocument, oldDocument){
    console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
  }
});
于 2016-12-11T18:22:34.147 回答
0

你的钩子是一样的。显然,集合挂钩仅支持每个事件一个挂钩。

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

于 2016-12-11T12:03:56.237 回答