3

我目前正在使用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

4

0 回答 0