Meteor.js: Collection.insert works on server but not client -
trying understand crud in meteor & have fundamental problem, when remove auto publish , use explicit pub/sub, collection inserts client update server not client collection.
the result while field values obtained properly, insert fails on client side. on server side, record inserted correctly.
$ meteor remove autopublish
create html form file (it's valid , functions expected), then:
file /server/publish.js:
meteor.publish('todos'), function() {     return todos.find(); }   file /lib/collections.js:
todos = new mongo.collection('todos');   file /client/subscribe.js:
meteor.subscribe('todos');   file /client/todos.js:
template.todoslist.helpers({     todoslist: function() {         return todos.find();     },   });  template.todonew.events({     'submit form': function(event) {         event.preventdefault();         var therecord = {             description: $(event.target).find('[id=description]').val(),             priority: $(event.target).find('[id=priority]').val()         };         // display correct field values, form data ok         console.log('attemping insert: ' + therecord.description);         todos.insert(therecord, function(error) {             // error occurs             console.log('error inserting: ' + therecord.description);         });     } });      
in order write collection client need allow rule. put under /server:
meteor.publish('todos', function() {   return todos.find(); });  todos.allow({   insert: function(userid, doc) {     // todo must have description , priority     return (doc.description && doc.priority);   } });      
Comments
Post a Comment