我收到错误"没有检查()所有参数"。但我正在检查所有的论点 - 非常奇怪。
运行该方法时,此Coffeescript代码会引发错误:
Meteor.methods
doSomething : ( arg={} )->
check arg, Object
答案 0 :(得分:0)
问题证明是默认参数。以下代码有效:
Meteor.methods
doSomething : ( arg )->
check arg, Match.Maybe( Object )
arg ?= {}
当您使用空对象作为参数默认值时,这似乎只是一个问题。其他类型的默认参数似乎工作 - 我测试了null和列表。
调用之间也有区别:
Meteor.call "doSomething"
并称之为......
Meteor.call "doSomething", undefined
在第一种情况下,参数隐式未定义,并将设置为默认值。这个错误不会发生。
在第二种情况下,我们显式传递undefined(或null),我们得到了这个bug。如果你可以避免这样做,你就不需要改变你的arg默认值。