如何使用 Meteor autoform 在服务器上添加所需的提交日期?
How to add a required dateSubmitted on the server with Meteor autoform?
我有一个 Posts 集合,需要 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
- 然后新文档被插入到集合中。
4.a。如果由于某种原因无法生成
dateSubmitted
,则会将错误发送回客户端。
假设您已经在使用 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
我有一个 Posts 集合,需要 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
- 然后新文档被插入到集合中。
4.a。如果由于某种原因无法生成
dateSubmitted
,则会将错误发送回客户端。
假设您已经在使用 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