根据meteor中的日期订阅

根据meteor中的日期订阅,meteor,subscribe,Meteor,Subscribe,我对网络开发有点陌生,我成为了meteor的粉丝,因为meteor让我可以轻松地完成酷炫的stuf。我一直在玩弄parties示例,并为parties添加了一个date属性。我想只订阅尚未到期的当事人的客户端 基本上是datenow我认为这是客户端代码中需要编辑的部分 我真的希望有人能在编写正确的订阅代码时为我指明正确的方向。客户端订阅服务器愿意发送给他们的内容 if(Meteor.isClient){ Meteor.subscribe("parties"); } if(Meteor.is

我对网络开发有点陌生,我成为了meteor的粉丝,因为meteor让我可以轻松地完成酷炫的stuf。我一直在玩弄parties示例,并为parties添加了一个date属性。我想只订阅尚未到期的当事人的客户端

基本上是datenow 我发现自己陷入了编写正确订阅代码的困境,因为我只找到了关于如何根据数据库属性订阅的文档,而不是基于将聚会日期与当前日期进行比较的文档

Meteor.订阅(“双方”);-->我认为这是客户端代码中需要编辑的部分


我真的希望有人能在编写正确的订阅代码时为我指明正确的方向。

客户端订阅服务器愿意发送给他们的内容

if(Meteor.isClient){
  Meteor.subscribe("parties");
}
if(Meteor.isServer){
  Meteor.publish("parties", function(){
    return Parties.find({date: {$gt: Date.now()}});
  });
}
服务器过滤客户端不应该拥有的数据,通常是出于安全原因。您不希望发布密码或私人信息。任何客户端都可以打开控制台并浏览发布给它们的完整数据集

if(Meteor.isClient){
  Meteor.subscribe("parties");
}
if(Meteor.isServer){
  Meteor.publish("parties", function(){
    return Parties.find({date: {$gt: Date.now()}});
  });
}
如果希望客户端能够同时看到过期方和未过期方,则可以从服务器发布整个集合,然后在模板帮助器中的客户端上对其进行筛选

if(Meteor.isServer){
  Meteor.publish("parties", function(){
    return Parties.find();
  });
}
if(Meteor.isClient){
  Meteor.subscribe("parties");
  Template.templateName.allParties = function(){
    return Parties.find();
  }
  Template.templateName.activeParties = function(){
    return Parties.find({date: {$gt: Date.now()}});
  }
}
如果不是数据库属性,“聚会日期”是什么?听起来您需要删除“自动发布”并编写自己的“发布”功能。如果您没有太多数据,您也可以更改模板并继续使用“自动发布”。