Er zijn 2 manieren waarop u een publicatiefunctie kunt implementeren:
- Door een cursor (of een array van cursors) terug te geven
- Door this.added(), this.changed() en this.removed() te gebruiken.
Alleen methode 2 staat toe om geretourneerde documenten te wijzigen.
Raadpleeg de Meteor-documentatie hier . Omdat de verstrekte voorbeeldcode er echter ingewikkeld uit kan zien, is hier nog een:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
is gelijk aan:
// 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(); });
});
In het tweede voorbeeld kunt u de parameter 'field' wijzigen voordat u deze voor publicatie verzendt, zoals dit:
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
Bron:dit bericht .