Meteor Audit-Argument-Checks 错误

Meteor Audit-Argument-Checks Error

我遇到错误 "Did not check() all arguments"。但是我正在检查所有的参数——非常奇怪。

此 Coffeescript 代码在您 运行 方法时抛出错误:

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

原来是参数默认的问题。以下代码有效:

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

这似乎只有在您使用空对象作为参数默认值时才会出现问题。其他类型的默认参数似乎有效——我测试了 null 和 list。

调用也有区别:

Meteor.call "doSomething"

并调用此...

Meteor.call "doSomething", undefined

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

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