【问题标题】:Meteor SimpleSchema does not throw errorMeteor SimpleSchema 不会抛出错误
【发布时间】:2016-03-28 02:01:39
【问题描述】:

我正在尝试在 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!');
  }
});

【问题讨论】:

    标签: validation meteor simple-schema


    【解决方案1】:

    此功能has apparently been added in version 1.4.0 属于 SimpleSchema 包,因此在 v1.3.3 中尚不可用。我猜你必须使用check() 直到 1.4.0 发布!

    【讨论】:

    • 非常感谢!我添加了aldeed:simple-schema@1.4.0,它就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2016-12-20
    • 2016-10-23
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2015-05-01
    相关资源
    最近更新 更多