Istnieją dwa sposoby na zaimplementowanie funkcji publikowania:
- Zwracając kursor (lub tablicę kursorów)
- Korzystając z this.added(), this.changed() i this.removed().
Tylko metoda 2 pozwala na modyfikację zwracanych dokumentów.
Zapoznaj się z dokumentacją Meteor tutaj . Jednakże, ponieważ dostarczony przykładowy kod może wyglądać na skomplikowany, oto jeszcze jeden:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
jest równoważne z:
// 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(); });
});
W drugim przykładzie możesz zmodyfikować parametr 'field' przed wysłaniem go do publikacji w następujący sposób:
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
Źródło:ten post .