我目前正在使用meteor-collection2
,但它的验证系统引发的错误存在问题。
在“lib”文件夹中,我定义了我的收藏,并附加了一个SimpleSchema
。然后,我定义了一个Meteor.method
:
# 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)
因此,此代码同时在 onclient-side
和 on 上运行server-side
,用于使用延迟补偿(它非常完美,因为 collection2 可以在两边都工作)。
但是,在调用此方法时(感谢客户端的事件):
# call method
Meteor.call 'RecipeCommentCreate', options, (error, result) ->
if error
# throw error
Errors.throw error.reason
else
# reset form
form.reset()
这不能以正确的方式工作,因为error
在回调中只是服务器端抛出的错误。collection2 在客户端抛出的错误只是登录我的浏览器控制台,并且不要停止代码:
[Log] Exception while simulating the effect of invoking 'RecipeCommentCreate' (meteor.js, line 890)
所以,如果有人可以帮助我理解我做错了什么......
非常感谢,
Yannis