Meteor SimpleSchema说随机的东西是有效的

时间:2016-07-27 11:50:50

标签: validation meteor meteor-collection2 simple-schema

我正在使用aldeed:collection2aldeed:simple-schema个套餐。我想针对架构验证文档。我的架构包含例如带有allowedValues数组的字符串字段和嵌套对象数组,用子模式描述。像这样:

...

type: {
    type: String,
    allowedValues: [ 'A', 'B', 'C' ],
    defaultValue: 'A',
    index: 1,
  },
nestedStuff: {
    type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor, SimpleSchema)) ],
    defaultValue: [],
  },

...

我有一个'坏'例如,doc " d"在type字段和无效的嵌套数组项。

在客户我尝试:

Contacts.simpleSchema().namedContext().validate(badDoc);

然后返回true。 SimpleSchema说文档是有效的,即使它的字段不遵守模式。 验证“坏”' type字段也会单独返回true。 我究竟做错了什么?为什么SimpleSchema会假设随机内容有效?

1 个答案:

答案 0 :(得分:0)

如果你想验证一个字符串数组,你需要将String保留在[]中。参见下面的代码,它可能会有所帮助

type: {
     type: [String],
     allowedValues: [ 'A', 'B', 'C' ],
     defaultValue: ['A'],
     index: 1,
   },
nestedStuff: {
     type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor,SimpleSchema)) ],
defaultValue: [],
  },

由于