实现添加、更改和删除服务器端

Implement added, changed and removed server side

上下文: 我正在使用集合 Params 从服务器调用方法到 C 应用程序。 C 应用程序完成它的工作,然后通过 RPC 调用服务器将结果发送给我。结果,我得到 Params ID 来删除相应的元素。 删除 Params 的元素后,C 应用会收到一条 removed 消息。我想阻止这种行为以避免消息的 C 应用程序过载。

我考虑过将removed事件实现到服务器上的Publish方法中,以防止服务器通知C应用程序。我只想让 C 应用程序了解 added 事件。

在 Meteor Doc 上,有一个 addedremoved 的实现示例,但我不明白。有人可以帮助我吗?

我已经试过了(根本不起作用):

Meteor.publish('expert_mode_parameters', function ()
{
  var self = this;

  var handle = Expert_Mode_Parameters.find().observeChanges({
    added: function ()
    {
        return Expert_Mode_Parameters.find();
    },
    removed: function ()
    {
        return [];
    }
  });

  self.ready();

  self.onStop(function () {
    handle.stop();
  });
}

您的目标似乎是订阅数据集,但只收到 added 条消息,而不是 changedremoved

下面的代码应该这样做:

Meteor.publish('expert_mode_parameters', function () {
  var self = this;

  var handle = Expert_Mode_Parameters.find().observe({
    added: function (document) {
      self.added("expert_mode_parameters", document._id, document);
    }
  });

  self.ready();

  self.onStop(function () {
    handle.stop();
  });
}

概念是,您正在观察 Expert_Mode_Parameters.find() 的结果,然后在有新项目时调用 self.added(document)。同样的东西可以很容易地扩展到包括 changed.