【发布时间】:2017-02-23 20:02:59
【问题描述】:
我收到一个错误“没有检查()所有参数”。但我正在检查所有的论点——很奇怪。
当您运行该方法时,此 Coffeescript 代码会引发错误:
Meteor.methods
doSomething : ( arg={} )->
check arg, Object
【问题讨论】:
标签: meteor coffeescript
我收到一个错误“没有检查()所有参数”。但我正在检查所有的论点——很奇怪。
当您运行该方法时,此 Coffeescript 代码会引发错误:
Meteor.methods
doSomething : ( arg={} )->
check arg, Object
【问题讨论】:
标签: meteor coffeescript
问题原来是参数默认值。以下代码有效:
Meteor.methods
doSomething : ( arg )->
check arg, Match.Maybe( Object )
arg ?= {}
当您使用空对象作为默认参数时,这似乎只是一个问题。其他类型的默认参数似乎也有效——我测试了 null 和 list。
调用也有区别:
Meteor.call "doSomething"
然后调用它...
Meteor.call "doSomething", undefined
在第一种情况下,参数是隐式未定义的,并将设置为默认值。这个错误不会发生。
在第二种情况下,我们显式传递 undefined(或 null),我们得到了这个错误。如果可以避免这样做,则无需更改 arg 默认值。
【讨论】: