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

Meteor 实现添加、更改和删除服务器端,meteor,meteor-publications,Meteor,Meteor Publications,上下文:我正在使用集合参数从服务器调用方法到C应用程序。C应用程序完成它的工作,然后通过RPC调用服务器来向我发送结果。结果是,我得到了参数ID来删除相应的元素。 删除Params元素后,C应用程序会收到一条已删除的消息。我想防止这种行为,以避免超载的C应用程序的消息 我曾考虑将删除的事件实现到服务器上的Publish方法中,以防止服务器通知C应用程序。我只想让C应用程序了解添加的事件 在Meteor文档中,有一个实现added和removed的示例,但我不理解。有人能帮我吗 我试过这个根本不起

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

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

在Meteor文档中,有一个实现added和removed的示例,但我不理解。有人能帮我吗

我试过这个根本不起作用:

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();
  });
}

看起来您的目标是订阅数据集,但只接收添加的消息,而不是更改或删除的消息

以下代码应执行此操作:

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.addeddocument。同样的东西可以很容易地扩展到包含更改的内容。

你说的C应用程序是什么意思?它的应用程序是用C语言编写的吗?是的,应用程序通过websocket与Meteor服务器进行通信。。。我很接近。非常感谢你!这样,DDP消息的格式与正常发布中的格式不同。id字段为空,数据在集合中,而不是消息中缺少的字段。这是正常行为还是我做错了?只是修改了我的答案。添加的函数实际上包含三个参数: