2016-10-14 9 views
0

「すべての引数をチェックしていませんでした」というエラーが表示されます。しかし、私はすべての議論をチェックしています - 非常に奇妙です。Meteor Audit-Argument-Checksエラー

Meteor.methods 
    doSomething : (arg={})-> 
    check arg, Object 

答えて

0

問題は、引数のデフォルトであることが判明:あなたがメソッドを実行したときに

このCoffeeScriptのコードでエラーが発生します。次のコードは動作します:

Meteor.methods 
    doSomething : (arg)-> 
    check arg, Match.Maybe(Object) 
    arg ?= {} 

これはあなたが引数のデフォルトとして空のオブジェクトを使用する場合、問題のようです。他の種類のデフォルト引数が動作するようです - 私はnullとリストをテストしました。

呼び出しの違いもあります:

Meteor.call "doSomething" 

そして、これを呼び出したが...最初のケースで

Meteor.call "doSomething", undefined 

引数は、暗黙的に定義されていない、デフォルトに設定されます。このバグは起こりません。

2番目のケースでは、明示的に未定義(またはnull)を渡し、このバグを取得します。これを避けることができれば、argのデフォルトを変更する必要はありません。