I’m currently using
meteor-collection2 and I’ve a problem with errors thrown by it’s validation system.
On “lib” folder, I defined my collection, and attach a
SimpleSchema to it. Then, I defined a
# define methods Meteor.methods # create RecipeCommentCreate: (options) -> # find recipe recipe = Recipes.findOne(options.recipeId) if !recipe throw new (Meteor.Error)(404, 'Recipe not found') # init comment comment = message: options.message recipe: _id: recipe._id # insert comment RecipeComments.insert(comment)
So, this code is running both on
client-side and on
server-side, for using latency compensation (and it’s perfect, because collection2 can work on both sides).
But, on calling this methode (thanks to an event on client-side) :
# call method Meteor.call 'RecipeCommentCreate', options, (error, result) -> if error # throw error Errors.throw error.reason else # reset form form.reset()
This doesn’t work in the right way, because
error in callback is only errors thrown by the server-side. Errors thrown by collection2 on the client side just make log in my browser console, and don’t stop the code :
[Log] Exception while simulating the effect of invoking 'RecipeCommentCreate' (meteor.js, line 890)
So, if someone can help me to understand what I do in the wrong way…