我有一个帖子集合,需要dateSubmitted
字段。但是,应使用服务器时间在服务器上生成此字段的值。
Posts.attachSchema(new SimpleSchema({
title: {
type: String,
optional: false
},
content: {
type: String,
optional: false
},
dateSubmitted: {
type: Date,
optional: false
}
}));
问题在于,如果我只有title
和content
的值,则表单不会在客户端上提交。但我也无法将其插入到集合中而没有从服务器生成的dateSubmitted
值。
我查看了Autoform挂钩,在这种情况下似乎没有任何效果。
这是我想要的工作流程:
title
,content
和dateSubmitted
是必需的。title
和content
成功提交表单。dateSubmitted
dateSubmitted
,则会将错误发送回客户端。答案 0 :(得分:1)
假设您已经在使用aldeed:collection2,那么在您的架构中使用以下内容:
dateSubmitted: {
type: Date,
autoValue: function(){
if ( this.isInsert ) return new Date();
else if ( this.isUpsert ) return { $setOnInsert: new Date };
else if ( this.isSet ) this.unset();
}
}
这将自动在insert / upsert上设置日期,然后拒绝所有后续更改。
来自http://0rocketscience.blogspot.com/2015/07/meteor-security-no-2-all-praise-aldeed.html