Es gibt zwei Möglichkeiten, wie Sie eine Veröffentlichungsfunktion implementieren können:
- Durch Rückgabe eines Cursors (oder eines Arrays von Cursorn)
- Durch die Verwendung von this.added(), this.changed() und this.removed().
Nur Methode 2 erlaubt es, zurückgegebene Dokumente zu ändern.
Bitte lesen Sie die Meteor-Dokumentation hier . Da der bereitgestellte Beispielcode jedoch komplex aussehen könnte, hier ein weiterer:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
entspricht:
// 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(); });
});
Im zweiten Beispiel können Sie den „field“-Parameter ändern, bevor Sie ihn zur Veröffentlichung senden, wie folgt:
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
Quelle:dieser Beitrag .