我正在使用aldeed:collection2
和aldeed: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会假设随机内容有效?
答案 0 :(得分:0)
如果你想验证一个字符串数组,你需要将String保留在[]中。参见下面的代码,它可能会有所帮助
type: {
type: [String],
allowedValues: [ 'A', 'B', 'C' ],
defaultValue: ['A'],
index: 1,
},
nestedStuff: {
type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor,SimpleSchema)) ],
defaultValue: [],
},
由于