Ale*_*ier 2 meteor simple-schema
为了确保我的出版物接收的参数类型,我应该使用SimpleSchema还是check()?
Meteor.publish('todos.inList', function(listId, limit) {
new SimpleSchema({
listId: { type: String },
limit: { type: Number }
}).validate({ listId, limit });
[...]
});
Run Code Online (Sandbox Code Playgroud)
要么
Meteor.publish('todos.inList', function(listId, limit) {
check(listId, String);
check (limit, Number);
[...]
});
Run Code Online (Sandbox Code Playgroud)
check()允许您检查数据type,这是一回事,但有些限制.
SimpleSchema它更强大,因为它检查文档中的所有键(而不是一次一个),并且不仅可以定义type允许的值,还可以定义允许的值,在不存在时定义默认(或动态)值.
你应该这样使用SimpleSchema:
mySchema = new SimpleSchema({ <your schema here>});
var MyCollection = new Mongo.Collection("my_collection");
MyCollection.attachSchema(mySchema);
Run Code Online (Sandbox Code Playgroud)
这样,您不需要在方法中检查架构:它将自动完成.当然,使用它总是很好的做法
mySchema.validate(document);
在将客户生成的文档插入集合之前验证它,但如果不这样,并且您的文档与模式不匹配(额外的键,错误的类型等...),SimpleSchema将拒绝不属于的部分.
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |