Meteor SimpleSchema不会抛出错误

时间:2015-12-21 22:06:22

标签: validation meteor simple-schema

我试图在Meteor方法中实施检查,但面对SimpleSchema包的一些奇怪行为(我现在使用最新版本的1.3.3);

来自文档:

  

调用mySimpleSchema.validate(doc)以针对架构验证doc,如果无效则抛出ValidationError。这类似于check(doc,mySimpleSchema),但没有检查依赖性,并且能够将完整模式错误详细信息传递回客户端上的回调。

我定义了一个简单的Schema:

var mySchema = new SimpleSchema({ name: {type: String} });

var invalidDoc = { name: 123 };

然而,mySchema对象没有"验证"方法。我只能使用

调用验证

mySchema.namedContext().validate(invalidDoc);

此方法返回false,但没有抛出任何异常。 我到目前为止找到的唯一方法是打电话给Meteor"检查"功能如下: check(invaidDoc, mySchema)这确实按预期工作。

所以,我的问题是:如何在Meteor方法上下文中检查对象,而不使用check();

Meteor.methods({
  'myMethod'(someObject) {

    var schema = new SimpleSchema({
        name: { type: String }
    });

    schema.namedContext().validate(someObject); //DOES NOT THROW!

    console.log('This should not be here!');
  }
});

1 个答案:

答案 0 :(得分:0)

SimpleSchema包的此功能has apparently been added in version 1.4.0,因此在v1.3.3中尚未提供。我想你必须使用check(),直到1.4.0点击气氛!