首页 文章

Meteor SimpleSchema不会抛出错误

提问于
浏览
0

我正在尝试在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 回答

相关问题