我有一个用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
。
如何解决?
答案 0 :(得分:1)
集合挂钩仅在进行更改的应用程序中运行。您的应用B钩子不会在应用A的变化下运行。
如果您想根据基础MongoDB数据的变化在应用B中执行某些操作,那么您希望observe该集合:
collections.notes.find().observe({
changed(newDocument, oldDocument){
console.log('Notes changed! Old doc: '+oldDocument+' to '+newDocument);
}
});
答案 1 :(得分:0)
你的钩子是相同的。显然,集合钩子每个事件只支持一个钩子。
为什么你想要两个相同的回调?