2015-12-21 115 views
0

我试图在Meteor方法中实现检查,但面临SimpleSchema包的一些奇怪的行为(我使用最新的1.3.3在此刻);流星SimpleSchema不会抛出错误

从文档:

呼叫mySimpleSchema.validate(DOC)来验证架构文档,如果无效抛出一个ValidationError。这就像check(doc,mySimpleSchema),但没有检查依赖关系,并且能够将完整的模式错误细节传递回客户端的回调。

我定义一个简单的模式是这样的:

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

var invalidDoc = { name: 123 }; 

然而MYSCHEMA对象不具有 “验证” 的方法。我只能打电话确认使用

mySchema.namedContext().validate(invalidDoc);

该方法返回false,但没有抛出任何异常。 到目前为止,我发现的唯一方法是打电话给流星“检查”功能,如下所示: 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!'); 
    } 
}); 

回答

0

SimpleSchema软件包的此功能has apparently been added in version 1.4.0,因此在v1.3.3中尚不可用。我想你将不得不使用check(),直到1.4.0的气氛!

+0

非常感谢!我添加了“aldeed:simple-schema @ 1.4.0”,它就像一个魅力! –