将新文档插入集合时,我想为其添加时间戳。我希望服务器执行此操作,而不是客户端。这里最好的解决方案是什么?
Rem:我不想为此实现自己的自定义Meteor.methods()
,而是使用经典的Meteor.Collection.insert()
方法
答案 0 :(得分:7)
从这里开始 - https://github.com/oortcloud/unofficial-meteor-faq
块引用
如何在将每个文档添加到数据库之前对其进行更改?
现在不支持此功能,但您可以使用拒绝功能来实现服务器上的功能。例如,为每个时间戳 文件进入mongo:
Posts.deny({
insert: function(userId, doc) {
doc.createdAt = new Date().valueOf();
return false;
}})
```
答案 1 :(得分:1)
与Nate一样,添加我使用的时间戳:
new Date().valueOf()
并将其附加到点击事件,如下所示:
"click #messageSubmit": function (evt, templ) {
var message = templ.find('#messageText').value;
Messages.insert({
message: message,
createdAt: new Date().valueOf()
});
}
答案 2 :(得分:0)
我会使用Date.now()
。它看起来更干净,并返回与new Date().getTime()
相同的值。
new Date().getTime() === Date.now() // true