0

我正在尝试在 Meteor 方法中实现检查,但面临 SimpleSchema 包的一些奇怪行为(我目前使用的是 1.3.3 的最新版本);

从文档:

调用 mySimpleSchema.validate(doc) 以根据模式验证 doc,如果无效则抛出 ValidationError。这类似于 check(doc, mySimpleSchema) 但没有检查依赖项,并且能够将完整的模式错误详细信息传递回客户端上的回调。

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

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!');
  }
});
4

1 回答 1

0

此功能显然已在SimpleSchema 包的 1.4.0 版本中添加,因此在 v1.3.3 中尚不可用。我猜你将不得不使用check()直到 1.4.0 达到大气层!

于 2015-12-22T10:56:52.300 回答