我试图在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!');
}
});
非常感谢!我添加了“aldeed:simple-schema @ 1.4.0”,它就像一个魅力! –