Има 2 начина, по които можете да приложите функция за публикуване:
- Чрез връщане на курсор (или масив от курсори)
- Чрез използване на this.added(), this.changed() и this.removed().
Само метод 2 позволява да се променят върнатите документи.
Моля, вижте документацията на Meteor тук . Въпреки това, тъй като предоставеният примерен код може да изглежда сложен, ето още един:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
е еквивалентно на:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
var self = this;
var handle = Rooms.find({}).observeChanges({
added: function(id, fields) { self.added("rooms", id, fields); },
changed: function(id, fields) { self.changed("rooms", id, fields); },
removed: function(id) { self.added("rooms", id); },
}
});
self.ready();
self.onStop(function () { handle.stop(); });
});
Във втория пример можете да промените параметъра „field“, преди да го изпратите за публикуване, по следния начин:
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
Източник:тази публикация .