Meteor Audit-Argument-检查错误

时间:2016-10-14 11:40:55

标签: meteor coffeescript

我收到错误"没有检查()所有参数"。但我正在检查所有的论点 - 非常奇怪。

运行该方法时,此Coffeescript代码会引发错误:

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

1 个答案:

答案 0 :(得分:0)

问题证明是默认参数。以下代码有效:

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

当您使用空对象作为参数默认值时,这似乎只是一个问题。其他类型的默认参数似乎工作 - 我测试了null和列表。

调用之间也有区别:

Meteor.call "doSomething"

并称之为......

Meteor.call "doSomething", undefined

在第一种情况下,参数隐式未定义,并将设置为默认值。这个错误不会发生。

在第二种情况下,我们显式传递undefined(或null),我们得到了这个bug。如果你可以避免这样做,你就不需要改变你的arg默认值。