对类的空实例进行Meteor简单模式验证

时间:2014-10-04 23:21:40

标签: meteor

我实际上是在简单架构的Github上发布了这个没有响应的问题。我的代码可能是错误的,或者我对JS OOP的理解可能是错误的,因为我来自Java和PHP背景。所以我不确定这是不是一个错误,但似乎是:

check({}, Schema.User)会触发异常,因为空对象缺少必填字段,但check(new User(), Schema.User)有效

isn&t; new User()是否也没有必填字段的值?

这里也是我做过的快速实验:

it("does not validate correctly if i give it an instance", function() {
  var Bee, b, schema;
  schema = new SimpleSchema({
    name: {
      type: String,
      optional: false
    }
  });

  Bee = function() {};
  b = new Bee();

  schema.newContext().validate(b, {modifier: false}).should.be.false  // validate is true here
});

it("works if i give it {}", function() {
  var schema;
  schema = new SimpleSchema({
    name: {
      type: String,
      optional: false
    }
  });

  schema.newContext().validate({}, {modifier: false}).should.be.false  // validate is false here
});

1 个答案:

答案 0 :(得分:1)

我认为这是故意的,并且似乎只验证基本对象(因此它验证{},但不验证new Bee())因为else if (Utility.isBasicObject(val) ...在简单模式验证中的某处。 js代码。