【发布时间】:2014-06-17 04:37:52
【问题描述】:
我想过滤来自客户端但在创建新文档时不需要的属性。我尝试使用下划线的 _.pick() 但似乎我无法覆盖 doc。
Meteor.Collection.prototype.addTimestamps = function () {
this.deny({
insert: function(userId, doc) {
doc.createdAt = Date.now();
doc.updatedAt = Date.now();
return false;
},
update: function(userId, doc, fieldNames, modifier) {
modifier.$set.updatedAt = Date.now();
return false;
},
});
};
Entries.addTimestamps();
Entries.allowed = ['_id', 'content', 'createdAt', 'updatedAt'];
Entries.allow({
insert: function (userId, doc) {
doc = _(doc).pick(Entries.allowed);
doc.userId = userId;
return !! userId;
},
update: function (userId, doc, fieldNames, modifier) {
return doc.userId === userId;
},
remove: function (userId, doc) {
return doc.userId === userId;
}
});
【问题讨论】:
-
你可以让这种事情发挥作用,但我建议改用一种方法。这只是我的观点,但在允许回调中操作文档似乎令人困惑。
标签: javascript collections meteor