現在使用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
と onserver-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)
それで、誰かが私が間違った方法で何をしているのかを理解するのを手伝ってくれるなら...
どうもありがとう、
ヤニス