【问题标题】:Meteor Audit-Argument-Checks ErrorMeteor 审计参数检查错误
【发布时间】:2017-02-23 20:02:59
【问题描述】:

我收到一个错误“没有检查()所有参数”。但我正在检查所有的论点——很奇怪。

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

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

【问题讨论】:

    标签: meteor coffeescript


    【解决方案1】:

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

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

    当您使用空对象作为默认参数时,这似乎只是一个问题。其他类型的默认参数似乎也有效——我测试了 null 和 list。

    调用也有区别:

    Meteor.call "doSomething"
    

    然后调用它...

    Meteor.call "doSomething", undefined
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 2015-01-03
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      相关资源
      最近更新 更多