我正在尝试在Meteor方法中实现检查,但是面对SimpleSchema包的一些奇怪的行为(我现在使用的最新版本是1.3.3);
来自Docs:
调用mySimpleSchema.validate(doc)来针对模式验证doc,如果无效则抛出ValidationError . 这类似于check(doc,mySimpleSchema)但没有检查依赖性,并且能够将完整模式错误详细信息传递回客户端上的回调 .
我定义了一个像这样的简单Schema:
var mySchema = new SimpleSchema({ name: {type: String} });
var invalidDoc = { name: 123 };
但是mySchema对象没有“validate”方法 . 我只能使用调用验证
mySchema.namedContext().validate(invalidDoc);
此方法返回false,但没有抛出任何异常 . 我到目前为止找到的唯一方法是调用Meteor "check"函数: 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 回答
此功能是SimpleSchema软件包的has apparently been added in version 1.4.0,因此在v1.3.3中尚未提供 . 我想你必须使用
check()
直到1.4.0点击气氛!