Meteor Publish Subscribe

meteor-cheat-sheet

// Meteor - Publish / Subscribe:

Publication is done on the server-side, while subscription is done on the client-side.
For security reason, we should publish only selected fields.  In this case, we publish only
the title field:

Meteor.publish('getTitles', function() {
  return Posts.find({}, {fields: {title: 1}});
});
Meteor.publish('getTitles', function() {
  return Posts.find({}, {fields: {title: 1}, limit: 20});
});

// Parameterized publication / subscription
Meteor.publish('decks.search', function(searchTerm){
  if (! this.userId) {
    this.ready();
  } else {
    searchTerm = decodeURIComponent(searchTerm);
    queryDoc = {title: {$regex: new RegExp(searchTerm)}};
    console.log("searchTerm:" + searchTerm);
    console.log(queryDoc);
    return DeckList.find(queryDoc);
  }
});
Template.deck_search_result.onCreated(function(){
  this.subscribe('decks.search',this.data.searchTerm);
  this.subscribe('decks.subscriptions');
});

// To publish:
Meteor.publish('subscriptionName', function() {
  return Posts.find();
});

// To do template-level subscription:
Template.templateName.onCreated(function(){
  this.subscribe('subscriptionName');
});
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License