2016-11-21 62 views

回答

0

首先需要在流星定义您的架构。

Lists.schema = new SimpleSchema({ 
    name: {type: String}, 
    incompleteCount: {type: Number, defaultValue: 0}, 
    userId: {type: String, regEx: SimpleSchema.RegEx.Id, optional: true} 
}); 

这个例子定义架构有一些简单的规则:

  1. 我们指定需要一个列表的名称字段必须是 字符串。
  2. 我们指定incompleteCount是一个数字,其在插入是 设置为0,如果不另外指明。
  3. 我们指定userId是可选的,必须是 看起来像用户文档的ID的字符串。

用模式验证文档非常简单。我们可以这样写:

const list = { 
    name: 'My list', 
    incompleteCount: 3 
}; 

Lists.schema.validate(list); 

在这种情况下,由于列表根据模式有效,所以validate()行将毫无问题地运行。然而,如果我们写:

const list = { 
    name: 'My list', 
    incompleteCount: 3, 
    madeUpField: 'this should not be here' 
}; 

Lists.schema.validate(list); 

随后的validate()调用将抛出一个ValidationError其中包含关于什么是错的列表文件的详细信息。

+0

这是使用Aldeed的SimpleSchema软件包吗? – pizzae

+0

它使用简单的模式,但不知道它是否是Aldeed的。您可以通过https://guide.meteor.com/collections.html阅读更多内容 –