第二个应用程序未调用收集挂钩
collection hook not called on second application
我有一个用 Meteor 1.4 编写的应用程序,运行 它在端口 3000(称为 A)上知道我想在另一个应用程序(称为 B)中使用应用程序数据库。在 B 控制台中,我这样设置 MONGO_URL:
export MONGO_URL=mongodb://localhost:3001/meteor
然后 运行 在端口 5000 上。
我在应用程序 A 上有一些 collection hook,在应用程序 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);
}
但它只是日志 notes updated in A hook
。
如何解决?
你的钩子是一样的。显然,收集挂钩每个事件只支持一个挂钩。
为什么要两个相同的回调?
收集挂钩 运行 仅在进行更改的应用程序中。您的应用程序 B 挂钩不会 运行 从应用程序 A 更改。
如果您想根据底层 MongoDB 数据更改在应用程序 B 中执行某些操作,那么您需要 observe 该集合:
collections.notes.find().observe({
changed(newDocument, oldDocument){
console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
}
});
我有一个用 Meteor 1.4 编写的应用程序,运行 它在端口 3000(称为 A)上知道我想在另一个应用程序(称为 B)中使用应用程序数据库。在 B 控制台中,我这样设置 MONGO_URL:
export MONGO_URL=mongodb://localhost:3001/meteor
然后 运行 在端口 5000 上。 我在应用程序 A 上有一些 collection hook,在应用程序 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);
}
但它只是日志 notes updated in A hook
。
如何解决?
你的钩子是一样的。显然,收集挂钩每个事件只支持一个挂钩。
为什么要两个相同的回调?
收集挂钩 运行 仅在进行更改的应用程序中。您的应用程序 B 挂钩不会 运行 从应用程序 A 更改。
如果您想根据底层 MongoDB 数据更改在应用程序 B 中执行某些操作,那么您需要 observe 该集合:
collections.notes.find().observe({
changed(newDocument, oldDocument){
console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
}
});